Game apparatus for performing game processing according to an attitude of an input device and game program

ABSTRACT

A game apparatus includes a CPU, and the CPU sets a moving direction, that is, a position and an orientation of a moving object within a game space on the basis of angular velocity data transmitted from a first controller, that is, an attitude of a gyro sensor unit (gyro sensor). Then, when a second controller is drawn toward a near side in a state that a C button and a Z button thereof are simultaneously pressed, and the C button and the Z button are simultaneously released in that state, the moving object is shot.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Ser. No. 12/366,160, filedFeb. 5, 2009, which claims priority to Japanese Patent Application No.2008-181422, filed Jul. 11, 2008, the entire contents of each of whichare hereby incorporated by reference.

BACKGROUND

1. Technical Field

The technology presented herein relates to a game apparatus and a gameprogram. More specifically, the present technology relates to a gameapparatus and a game program capable of executing game processing, suchas shooting or firing an object by fixing a direction, like a bow andarrow, a bow gun, etc.

2. Description of the Related Art

One example of a game apparatus of such a kind is disclosed in “MonsterHunter 2” released on Feb. 16, 2006 on page 49. In the game apparatus ofthe related art, by deciding a shooting direction of an arrow with across key, and by inclining a joystick backward, a bowstring of a bowfit with the arrow is drawn, and by inclining the joystick forward, thearrow is shot.

In the related art, a moving direction of the arrow is adjusted with thecross key, and therefore, there is a problem of taking a lot of timeuntil the moving direction is fixed, that is, a target is tightly aimed.Furthermore, there is another problem that an action of taking aim withthe bow in response to an operation with the cross key is not intuitive.

SUMMARY

Therefore, it is a primary feature of the example embodiments presentedherein to provide a novel game apparatus and a game program.

Another feature of the embodiments is to provide a game apparatus and agame program capable of performing an intuitive operation.

A still another feature of the embodiments is to provide a gameapparatus and a game program capable of rapidly setting and firing amoving direction of an object.

The present embodiments employ the following features in order to solvethe above-described problems. It should be noted that reference numeralsand the supplements inside the parentheses show one example of acorresponding relationship with the embodiments described later for easyunderstanding of the present embodiments, and do not limit the presentembodiments.

A first embodiment is a game apparatus which performs game processingaccording to an attitude of an input device, and comprises an operationdata obtaining means for obtaining operation data from the input devicewhich outputs attitude correlation data on the basis of an attitude, aplanned moving direction setting means for changing a planned movingdirection of a first object within a game space in accordance with theattitude correlation data, a movement instruction inputting means forinstructing the first object to move on the basis of the operation data,and a movement starting means for deciding a moving direction of thefirst object to be the planned moving direction set at a timing based onthe movement instructing input, and starting to move the first object inthat direction.

In the first embodiment, a game apparatus (12: reference numeralindicating a corresponding part in this embodiment, and this can beapplied to the following) of this embodiment uses a first controller(remote controller) (34), that is, a gyro sensor unit (100) and a secondcontroller (36) as an input device (14). The input device outputsattitude correlation data (yaw angle, pitch angle, roll angle) on thebasis of an attitude thereof, and outputs operation data in response toan operation of an input means or an operating portion (46). Theattitude correlation data and the operation data are input to anoperation data obtaining means (62) in a wireless manner, for example. Aplanned moving direction setting means (60, S15, FIG. 28) sets a plannedmoving direction of a first object, an arrow object (144), for example,within a game space in accordance with an attitude of the input device,that is, attitude correlation data. For example, a movement instructionis input on the basis of operation data of the input device, such as asecond controller (36). In this embodiment, a movement instructioninputting means (60, S11, S17) instructs the first object to move whenthe second controller (36) is drawn toward a near side in apredetermined state, and canceled from the predetermined. Then, amovement starting means (60, S21, S23) decides a moving direction of thefirst object to be the planned moving direction set at a timing based onthe movement instructing input, and starts to move the first object inthe direction.

The movement instruction inputting means may input a movementinstruction in response to an operation of a joystick (54 a) of thesecond controller (36), for example, other than the above.Alternatively, a movement instruction may be input in response to anoperation of a specific button (A button 46 d, for example) of the firstcontroller (34).

In the first embodiment, by changing an attitude of the input device, itis possible to set or decide a moving direction or a planned movingdirection of the first object. Accordingly, it is possible to quicklyperform the setting of the moving direction.

A second embodiment further comprises an orientation setting means fordeciding an orientation of a second object in accordance with theattitude of the input device, wherein the planned moving directionsetting means changes the moving direction of the first object inaccordance with the orientation of the second object.

In the second embodiment, an orientation setting means (60, S7, S13)sets an orientation of a second object, that is, a bow object (142) whenthe first object is an arrow object (144) in this embodiment.Accordingly, the moving direction of the first object is changeddepending on the orientation of the second object. According to thesecond embodiment, it is possible to set the planned moving direction ofthe first object (moving object) by adjusting the orientation of thesecond object.

In a third embodiment the input device includes a gyro sensor, andoutputs angular velocity data on the basis of an output from at leastthe gyro sensor as the operation data, and the planned moving directionsetting means changes the planned moving direction of the first objecton the basis of the angular velocity data.

In the third embodiment, the input device (14) includes a gyro sensor(104), and from the input device, angular velocity data detected by thegyro sensor is output as the attitude correlation data. Accordingly, theplanned moving direction setting means (60, S15, FIG. 28) sets theplanned moving direction of the first object according to the angularvelocity data. According to the third embodiment, it is possible to seta planned moving direction by the gyro sensor.

In a fourth embodiment the input device further includes a firstacceleration sensor capable of being moved with the gyro sensor, andfurther outputs acceleration data on the basis of an output from atleast the first acceleration sensor as the operation data, and theplanned moving direction setting means changes the planned movingdirection of the first object on the basis of the angular velocity dataand the acceleration data.

In the fourth embodiment, the input device (14) further includes a firstacceleration sensor (84). The planned moving direction setting meanschanges the planned moving direction of the first object on the basis ofthe angular velocity data and the acceleration data. According to thefourth embodiment, it is possible to adjust the planned moving directionon the basis of angular velocities and accelerations.

In a fifth embodiment the planned moving direction setting meanscalculates an attitude on the basis of the angular velocity data, andcalculates the planned moving direction of the first object by bringingthe attitude into correspondence with an attitude calculated byperforming a correction on the basis of the acceleration data.

In the fifth embodiment, for example, by bringing the attitudecalculated for each frame close to the attitude decided by theacceleration data, accumulated errors of the angular velocity data fromthe gyro sensor are corrected. In this embodiment, a rotation (M) iscalculated such that a gravitational direction (v) assumed from theattitude of the first controller (34) is close to the direction of anacceleration vector (a) detected by the first acceleration sensor (84).The rotation amount of the rotation (M) is set such that as the size ofthe acceleration vector (a) is close to the size of the gravitationalacceleration, the gravitational direction (v) is close to theacceleration vector (a). According to the fifth embodiment, it ispossible to effectively remove the accumulated errors necessarily causedin the processing on the basis of the angular velocity form the gyrosensor.

In a sixth embodiment the planned moving direction setting meanscalculates an attitude in a yaw direction on the basis of the angularvelocity data, and calculates an attitude in a pitch direction on thebasis of the acceleration data.

As in the sixth embodiment, on the basis of the angular velocity datafrom the gyro sensor (104), an attitude in a yaw direction of the movingobject is calculated, and on the basis of the acceleration data from theacceleration sensor (84), an attitude in a pitch direction iscalculated.

In a seventh embodiment the input device further includes a first key,and further outputs key data on the basis of an operation performed onthe first key as the operation data, and the movement instructioninputting means instructs the first object to move at a timing when thekey data satisfies a predetermined condition.

In the seventh embodiment, the input device is provided with a firstkey, that is, a C button (54 b) and/or a Z button (54 c) of the Nunchaku(36) in this embodiment. In the key data from the input device, when thekey data of the first key satisfies a predetermined condition(simultaneous releasing the C button (54 b) and the Z button (54 c), forexample), the movement instruction inputting means inputs the movementinstruction. According to the seventh invention, it is possible to alsoinput a movement instruction by the key data.

In an eighth embodiment the input device further includes a secondacceleration sensor capable of being independently moved with the gyrosensor and further outputs acceleration data on the basis of the outputfrom the second acceleration sensor as the operation data, and themovement instruction inputting means determines a state that the inputdevice moves to a predetermined direction with the first key operated onthe basis of the key data and the acceleration data, and instructs thefirst object to move at a timing when the operation by the first key isreleased.

In the eighth embodiment, if another acceleration sensor (86) isprovided to the second controller (36), and the aforementioned first keyis provided to the controller (36), and detects whether or not there isa premise operation for a movement instruction on the basis of theacceleration data from the second acceleration sensor (86) with thefirst key, that is, the C button (54 b) and the Z button (54 c) aresimultaneously pushed, for example. In this embodiment, the attitude ofthe second controller (36) with reference to the Y axis is evaluatedfrom the acceleration data obtained by multiplying the accelerationdetected by the acceleration sensor (86) of the second controller (36)by a predetermined damper coefficient. Whether or not the inner productbetween “the unit vector in a −Z direction” in that attitude and “thedifference between the acceleration at the current step (timing) of thesecond controller (36) and the acceleration at the previous step”exceeds a constant value is determined. If the inner product exceeds theconstant value, it is determined that there is a movement instructinginput. According to the eighth embodiment, when the second controller(36) is drawn to the near side at speeds higher than a constant speed,it is determined that the premise for the movement instruction isestablished, and therefore, in a case of a shooting game utilizing a bowand arrow, for example, by drawing the second controller, an operationof drawing a bow can be performed, capable of shooting an arrow byperforming an intuitive operation on the bow.

In a ninth embodiment the input device further includes a stick capableof performing a direction input, and further outputs stick input data asthe operation data, and the movement instruction inputting meansinstructs the first object to move at a timing when the stick input datasatisfies a predetermined condition.

In the ninth embodiment, the input device (14) includes a joystick (54a) provided to the second controller (36), for example, and the movementinstruction inputting means inputs a movement instruction in response toan operation by the joystick (54 a), that is, a shift operation from abackward tilt to a forward tilt. According to the ninth invention,similar to conventional analogous game apparatuses, it is possible toinput a movement instruction by the joystick.

In a tenth embodiment the input device further includes a second key,and further outputs key data on the basis of an operation performed onthe second key as the operation data, and the planned moving directionsetting means calculates a change of the attitude from a reference onthe basis of a change from the operation at the timing when the key isoperated during the operation of the key.

In the tenth embodiment, the input device (14) includes an A button (46d) or a B button (46 h) as a second key which are provided to the firstcontroller (34). When the A button (46 d) or the B button (46 h) isoperated, the basic attitude of the input device (14) is decided as areference, and the planned moving direction setting means (60, S15, FIG.28) sets the planned moving direction in accordance with the change fromthe basic attitude of the input device (14). According to the tenthembodiment, according to an operation of the second key, that is, the Abutton (46 d) or the B button (46 h), for example, a reference or abasic attitude is decided, and the planned moving direction is set inaccordance with the change therefrom, and therefore, it is possible toexpect an effect of causing the player to precisely face the monitor(26), for example.

An eleventh embodiment is a storage medium capable of being read by aprocessor of a game apparatus which performs game processing inaccordance with an attitude of an input device, the storage mediumstoring a program, the program causes the processor to function as anoperation data obtaining means for obtaining operation data from theinput device which outputs attitude correlation data on the basis of anattitude, a planned moving direction setting means for changing aplanned moving direction of a first object within a game space inaccordance with the attitude correlation data, a movement instructioninputting means for instructing the first object to move on the basis ofthe operation data, and a movement starting means for deciding a movingdirection of the first object to be the planned moving direction set ata timing on the basis of the movement instructing input, and starting tomove the first object in the direction.

In also the eleventh embodiment, it is possible to expect advantages thesame as those in the first embodiment.

In a twelfth embodiment the program causes the processor to furtherfunction as an orientation setting means for deciding an orientation ofa second object in accordance with the attitude of the input device,wherein the planned moving direction setting means changes the movingdirection of the first object in accordance with the orientation of thesecond object.

In also the twelfth embodiment, it is possible to expect advantage thesame as those in the second invention.

In a thirteenth embodiment the input device includes a gyro sensor, andoutputs angular velocity data on the basis of an output from at leastthe gyro sensor as the operation data, and the planned moving directionsetting means changes the planned moving direction of the first objecton the basis of the angular velocity data.

In also the thirteenth embodiment, it is possible to expect advantagesthe same as those in the third embodiment.

In a fourteenth embodiment the input device further includes a firstacceleration sensor capable of being moved with the gyro sensor, andfurther outputs acceleration data on the basis of an output from atleast the first acceleration sensor as the operation data, and theplanned moving direction setting means changes the planned movingdirection of the first object on the basis of the angular velocity dataand the acceleration data.

In also the fourteenth embodiment, it is possible to expect advantagesthe same as those in the fourth embodiment.

In a fifteenth embodiment the planned moving direction setting meanscalculates an attitude on the basis of the angular velocity data, andcalculates the planned moving direction of the first object by bringingthe attitude into correspondence with an attitude calculated byperforming a correction on the basis of said acceleration data.

In also the fifteenth embodiment, it is possible to expect advantagesthe same as those in the fifth embodiment.

In a sixteenth embodiment the planned moving direction setting meanscalculates an attitude in a yaw direction on the basis of the angularvelocity data, and calculates an attitude in a pitch direction on thebasis of the acceleration data.

In also the sixteenth embodiment, it is possible to expect advantagesthe same as those in the sixth embodiment.

In a seventeenth embodiment the input device further includes a firstkey, and further outputs key data on the basis of an operation performedon the first key as the operation data, and the movement instructioninputting means instructs the first object to move at a timing when thekey data satisfies a predetermined condition.

In also the seventeenth embodiment, it is possible to expect advantagesthe same as those in the seventh embodiment.

In an eighteenth embodiment the input device further includes a secondacceleration sensor capable of being independently moved with the gyrosensor and further outputs acceleration data on the basis of the outputfrom the second acceleration sensor as the operation data, and themovement instruction inputting means determines a state that the inputdevice moves to a predetermined direction with the first key operated onthe basis of the key data and the acceleration data, and instructs thefirst object to move at a timing when the operation by the first key isreleased.

In also the eighteenth embodiment, it is possible to expect advantagesthe same as those in the eighth embodiment.

In a nineteenth embodiment the input device further includes a stickcapable of performing a direction input, and further outputs stick inputdata as the operation data, and the movement instruction inputting meansinstructs the first object to move at a timing when the stick input datasatisfies a predetermined condition.

In also the nineteenth embodiment, it is possible to expect advantagesthe same as those in the ninth embodiment.

In a twentieth embodiment the input device further includes a secondkey, and further outputs key data on the basis of an operation performedon the second key as the operation data, and the planned movingdirection setting means calculates a change of the attitude from areference on the basis of a change from the operation at the timing whenthe key is operated during the operation of the key.

In also the twentieth embodiment, it is possible to expect advantagesthe same as those in the tenth embodiment.

A twenty-first embodiment is a control method of a game apparatus whichperforms game processing in accordance with an attitude of an inputdevice, and includes following steps of: (a) an operation data obtainingstep for obtaining operation data from the input device which outputsattitude correlation data on the basis of an attitude, (b) a movingdirection setting step for changing a planned moving direction of afirst object within a game space in accordance with the attitudecorrelation data, (c) a movement instruction inputting step forinstructing the first object to move on the basis of the operation data,and (d) a movement starting step for deciding a moving direction of thefirst object to be the planned moving direction set at a timing on thebasis of the movement instructing input, and starting to move the firstobject in the direction.

In also the twenty-first embodiment, it is possible to expect advantagesthe same as those in the first embodiment and the eleventh embodiment.

According to the present embodiments, by changing the attitude of theinput device, a moving direction of the object can be adjusted, andtherefore, it is possible to set or decide the moving direction of theobject easily and quickly.

The above described features, aspects and advantages of the presentembodiment will become more apparent from the following detaileddescription of the present embodiment when taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a configuration of one embodiment.

FIGS. 2(A) and 2(B) are an illustrative view showing an appearance of afirst controller (remote controller) applied to FIG. 1 embodiment. FIG.2(A) is a perspective view of the first controller as viewed from aboverear, and FIG. 2(B) is a perspective view of the first controller asviewed from below front.

FIGS. 3(A) and 3(B) are an illustrative view showing an appearance of asecond controller (Nunchaku) applied to FIG. 1 embodiment. FIG. 3(A) isa perspective view of the second controller as viewed from above rear,and FIG. 3(B) is a perspective view of the second controller as viewedfrom below front.

FIG. 4 is an illustrative view showing an appearance of a connector ofthe second controller.

FIG. 5 is an illustrative view showing a manner in which a cord of astrap attached to the first controller is hung and retained with a hookof the connector in a state that the connector of the second controlleris connected the first controller.

FIGS. 6(A) and 6(B) are an illustrative view showing an appearance of agyro sensor unit applied to FIG. 1 embodiment. FIG. 6(A) is aperspective view of the gyro sensor unit as viewed from above front, andFIG. 6(B) is a perspective view of the gyro sensor unit as viewed fromrear back.

FIG. 7 is an illustrative view showing structure of the gyro sensorunit.

FIG. 8 is an illustrative view showing a state in which the gyro sensorunit is connected to the first controller.

FIG. 9 is an illustrative view showing a state in which the secondcontroller is connected to the first controller via the gyro sensorunit.

FIG. 10 is a block diagram showing an electric configuration of FIG. 1embodiment.

FIG. 11 is a block diagram showing an electric configuration of all thecontrollers applied to FIG. 1 embodiment.

FIG. 12 is an illustrative view showing a state in which a game isplayed by utilizing the controller connected with the gyro unit shown inFIG. 1.

FIG. 13 is an illustrative view explaining viewing angles of markers andthe controller shown in FIG. 1.

FIG. 14 is an illustrative view showing one example of an imaged imageincluding object images.

FIG. 15 is a block diagram showing an electric configuration of the gyrosensor unit which is placed between the first controller and the secondcontroller in the controllers shown in FIG. 11.

FIGS. 16(A) and 16(B) are an illustrative view showing a data formatdealt by the gyro sensor unit. FIG. 16(A) is an illustrative viewshowing a format of gyro data and FIG. 16(B) is an illustrative viewshowing a format of second controller data.

FIG. 17 is an illustrative view showing a yaw angle, a pitch angle, anda roll angle which are detectable by the gyro sensor.

FIG. 18 is an illustrative view showing one example of a state in whicha game player holds the first controller and the second controller whena game is actually played by utilizing the controllers.

FIG. 19 is an illustrative view showing a table in which a control by amicrocomputer of the gyro sensor unit is described for each mode.

FIGS. 20(A) and 20(B) are an illustrative view showing a mode switchingapplied to the gyro sensor unit. FIG. 20(A) is an illustrative viewshowing a mode switching when the application is a gyro-compatible type,and FIG. 20(B) is an illustrative view showing a mode switching when theapplication is a gyro-incompatible type.

FIG. 21 is an illustrative view showing one example of a game screendisplayed on the monitor shown in FIG. 1.

FIG. 22 is an illustrative view showing another example of the gamescreen.

FIG. 23 is an illustrative view showing a still another example of thegame screen.

FIG. 24 is an illustrative view showing a further example of the gamescreen.

FIG. 25 is an illustrative view showing a memory map of a main memoryshown in FIG. 10.

FIG. 26 is an illustrative view showing a concrete example of a datamemory area shown in FIG. 25.

FIG. 27 is a flowchart showing a game processing by the CPU shown inFIG. 10 in this embodiment.

FIG. 28 is a flowchart showing an operation of posing processing shownin FIG. 27.

FIG. 29 is an illustrative view showing a situation in which a userplays the game in this embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring to FIG. 1, a game system 10 of one embodiment includes a videogame apparatus (hereinafter, referred to as “game apparatus”) 12 and acontroller 14. The controller 14 functions as an input device or anoperating device by a user or a player. The game apparatus 12 and thecontroller 14 are connected by radio. For example, the wirelesscommunication is executed according to a Bluetooth (registeredtrademark) standard, but may be executed according to other standards,such as an infrared ray communication, a wireless LAN, etc.

The game apparatus 12 includes a roughly rectangular parallelepipedhousing 16, and the housing 16 is furnished with a disk slot 18 and anexternal memory card slot cover 20 on a front surface. An optical disk22 as one example of an information storage medium storing game programand data, etc. is inserted from the disk slot 18 to be loaded into adisk drive 74 (see FIG. 10) within the housing 16. Inside the externalmemory card slot cover 20 is provided a connector for external memorycard 48 (FIG. 10) through which a memory card (not shown) is inserted.The memory card is employed for loading the game program, etc. read fromthe optical disk 22 to temporarily store it, storing (saving) game data(result data or proceeding data of the game) of the game played by meansof the game system 10, and so forth. It should be noted that storing thegame data described above may be performed on an internal memory such asa flash memory 64 (FIG. 10) in place of the external memory card.

The game apparatus 12 has an AV cable connector (not illustrated) on arear surface of the housing 16, and by means of the connector, the gameapparatus 12 is connected to a monitor (display) 26 via an AV cable 24.The monitor 26 is typically a color television receiver, and through theAV cable 24, a video signal from the game apparatus 12 is input to avideo input terminal of the color television, and a sound signal isinput to a sound input terminal thereof. Accordingly, a game image of athree-dimensional (3D) video game, for example, is displayed on thescreen of the color television (monitor) 26, and a stereo game sound,such as a game music, a sound effect is output from integrated speakers28.

Additionally, around the monitor 26 (upper side of the monitor 26 inthis embodiment), a marker unit 30 having two infrared ray LEDs(markers) 30 a and 30 b is provided. The marker unit 30 is connected tothe game apparatus 12 through a power source cable (not shown).Accordingly, the marker unit 30 is supplied with power from the gameapparatus 12. The markers 30 a and 30 b emit and output infrared raysforward the monitor 26.

Furthermore, the power of the game apparatus 12 is applied by means of ageneral AC adapter (not illustrated). The AC adapter is connected to astandard wall outlet for home use, and transforms the house current to alow DC voltage signal suitable for driving the game apparatus 12. Inanother embodiment, a battery may be utilized as a power supply.

The controller 14, which is described in detail later, includes a firstcontroller 34 and a second controller 36 each capable of being held withone hand and a gyro sensor unit 100 detachably attached to the firstcontroller 34. On a rear end surface of the first controller 34, aconnector 42 (FIG. 2(A), FIG. 11) is provided, and at an end of a cable38 extending from the rear end of the second controller 36, a connector40 (FIG. 1, FIG. 5, FIG. 11) is provided, and on a front end surface anda rear end surface of the gyro sensor unit 100, connectors 106 and 108(FIG. 6(A), FIG. 6(B), FIG. 7 and FIG. 11) are respectively provided.The connector 106 at the front end surface of the gyro sensor unit 100is connectable to the connector 42 of the first controller 34, and theconnector 40 of the second controller 36 is connectable to the connector42 of the first controller 34 or the connector 108 at the rear endsurface of the gyro sensor unit 100.

By connecting the connector 106 to the connector 42, the gyro sensorunit 100 is physically and electrically connected to the firstcontroller 34. From the gyro sensor unit 100 thus attached (connected asa single unit) to the first controller 34, angular velocity dataindicating an angular velocity of the first controller 34 is output.

In a case that the gyro sensor unit 100 is thus attached to the firstcontroller 34, the connector 40 of the second controller 36 is connectedto the connector 108 at the rear end surface of the gyro sensor unit100. That is, the connector 42 has a structure selectively connectableto either of the connector 106 or the connector 40, and the connector 40has a structure of selectively connectable to either of the connector 42or the connector 108. Accordingly, the connector 106 and the connector108 provided to the gyro sensor unit 100 cannot actually be connectedbecause of being a part of the same housing, but have shapes connectablewith each other. Input data from the second controller 36 is applied tothe first controller 34 via the cable 38 and the gyro sensor unit 100.The first controller 34 transmits controller data including input datafrom the first controller 34 itself, angular velocity data from the gyrosensor unit 100, and input data from the second controller 36 to thegame apparatus 12.

Alternatively, in a case that the connector 40 is connected to theconnector 42, operation data or input data from the second controller 36are applied to the first controller 34 via the cable 38, and the firstcontroller 34 transmits controller data including the input data fromthe first controller 34 itself and the input data from the secondcontroller 36 to the game apparatus 12.

In the system here for transmitting the input data from the firstcontroller 34 and the input data from the second controller 36, a dataamount to be transmitted at a time may sometimes be designed so as notbe added, but in a case that the gyro unit 100 is added, angularvelocity data from the gyro unit 100 and input data from the secondcontroller 36 are alternately output to the first controller 36, whichallows both of the data to be transmitted. The data control can beperformed by the gyro unit 100, so that the first controller 34 and thesecond controller 36 are not required to be changed in design.

Thus, the first controller 34 inputs by radio to the game apparatus 12an operation signal and operation data (data) from the second controller36 and the gyro sensor unit 100 as well as the operation signal and theoperation data (data) from the controller 34 away from the gameapparatus 12, and therefore, the first controller 34 may sometimes becalled a “remote controller”. Furthermore, the second controller 36 iscalled “Nunchaku” for the sake of its shape, and therefore, it maysometimes be called so.

Thus, the gyro sensor unit 100 is an expanding unit for adding a gyrofunction to the first controller 34 by utilizing the existing firstcontroller 34 and second controller 36 as it is.

In the game system 10, a user first turns the power of the gameapparatus 12 on for playing the game (or another application), thenselects an appropriate optical disk 22 storing a video game (or anotherapplication the player wants to play), and loads the optical disk 22into the disk drive 74 through the disk slot 18 of the game apparatus12. In response thereto, the game apparatus 12 starts to execute a videogame or another application on the basis of the software stored in theoptical disk 22. The user operates the controller 14 in order to applyan input to the game apparatus 12.

FIGS. 2(A) and 2(B) show one example of an appearance of the remotecontroller or the first controller 34. FIG. 2(A) is a perspective viewof the first controller 34 as seeing it from above rear, and FIG. 2(B)is a perspective view of the first controller 34 as seeing it from belowfront.

The first controller 34 has a housing 44 formed by plastic molding, forexample. The housing 44 is formed into an approximately rectangularparallelepiped shape regarding a back and forth direction (Z-axisdirection shown) as a longitudinal direction, and has a size smallenough to be held by one hand of a child and an adult. As one example,the housing 44 has a length or a width approximately the same as that ofa palm of a person. The player can perform a game operation by means ofthe first controller 34, that is, by pushing the buttons provided on itand by changing a position and a direction of the first controller 34itself.

The housing 44 is provided with a plurality of operation buttons. Thatis, on the top surface of the housing 44, a cross key 46 a, an 1 button46 b, a 2 button 46 c, an A button 46 d, a −(minus) button 46 e, a home(HOME) button 46 f, and a +(plus) button or start button 46 g areprovided. Meanwhile, on the bottom surface of the housing 44, a concaveportion is formed, and on the reward inclined surface of the concaveportion, a B button 46 h is provided. Each of the buttons (switches) 46a-46 h is assigned an appropriate function depending on a game programto be executed by the game apparatus 12. Furthermore, the housing 44 hasa power switch 46 i for turning on and off the power of the main body ofthe game apparatus 12 from a remote place on a top surface. Therespective buttons (switches) provided on the first controller 34 mayinclusively be indicated as an operating means or an input means withthe use of the reference numeral 46.

The cross key 46 a is a four directional push switch, including fourdirections of front (or upper), back (or lower), right and leftoperation parts. By operating any one of the operation parts, it ispossible to instruct a moving direction of a character or an object(player character or player object) that is operable by a player,instruct the moving direction of a cursor, or merely instruct adirection.

The 1 button 46 b and the 2 button 46 c are respectively push buttonswitches, and are used for a game operation, such as adjusting aviewpoint position and a viewpoint direction on displaying the 3D gameimage, i.e. a position and an image angle of a virtual camera.Alternatively, the 1 button 46 b and the 2 button 46 c can be used forthe same operation as that of the A-button 46 d and the B button 46 h oran auxiliary operation.

The A-button switch 46 d is the push button switch, and is used forcausing the player character or the player object to take an actionother than a directional instruction, specifically arbitrary actionssuch as hitting (punching), throwing, grasping (acquiring), riding, andjumping, etc. For example, in an action game, it is possible to give aninstruction to jump, punch, move a weapon, and so forth. Also, in a rollplaying game (RPG) and a simulation RPG, it is possible to instruct toacquire an item, select and determine the weapon and command, and soforth. Furthermore, in a case that the controller 34 is used as apointing device, the A-button switch 46 d is used to instruct a decisionof an icon or a button image instructed by a pointer (instruction image)on the game screen. For example, when the icon or the button image isdecided, an instruction or a command set in advance correspondingthereto can be input.

The − button 46 e, the HOME button 46 f, the + button 46 g, and thepower supply switch 46 i are also push button switches. The − button 46e is used for selecting a game mode. The HOME button 46 f is used fordisplaying a game menu (menu screen). The + button 46 g is used forstarting (resuming) or pausing the game. The power supply switch 46 i isused for turning on/off a power supply of the game apparatus 12 byremote control. It should be noted that in this embodiment, a powerswitch for turning on and off the controller 34 itself is not furnished,and the controller 34 is turned on in response to any of the operatingmeans and the input means 46 of the controller 34 being operated, andautomatically turned off in response to no operation for a constantperiod (30 seconds, for example) and more.

The B button 46 h is also the push button switch, and is mainly used forinputting a trigger such as shooting, and designating a positionselected by the controller 34. In a case that the B button 46 h iscontinued to be pushed, it is possible to make movements and parametersof the player object constant. In a fixed case, the B button 46 hfunctions in the same way as a normal B-button, and is used forcanceling an action and a command determined by the A-button 46 d.

Within the housing 44, an acceleration sensor 84 (FIG. 11) for detectingaccelerations in three-axis directions of X, Y and Z (that is, right andleft direction, up and down direction and forward and reward direction)shown in FIG. 2 is provided. Alternatively, as an acceleration sensor84, a two-axis acceleration sensor for detecting accelerations in anytwo directions out of the right and left direction, up and downdirection and forward and reward direction may be used depending on therestriction on a shape of the housing 44, a way of holding the firstcontroller 34, or the like. Under certain circumstances, a one-axisacceleration sensor may be used.

On the front surface of the housing 44, a light incident opening 44 b isformed, and inside the housing 44, an imaged information arithmeticsection 50 is further provided. The imaged information arithmeticsection 50 is made up of a camera for imaging infrared rays and anarithmetic operation portion for calculating coordinates of imagedobjects within an image, and captures an object scene including theabove-described markers 30 a and 30 b by the infrared rays to calculateposition coordinates of the markers 30 a and 30 b within the objectscene.

On the rear surface of the housing 44, the above-described connector 42is provided. The connector 42 is utilized for connecting other equipmentto the first controller 34. In this embodiment, the connector 42 isconnected with the connector 40 of the second controller 36 or theconnector 106 of the gyro sensor unit 100.

Moreover, on the rear surface of the housing 44, a pair of through holes48 a and 48 b is formed in such positions as to be symmetrically witheach other (X-axis direction) about the connector 42. The pair ofthrough holes 48 a and 48 b is for being inserted with hooks 112Fa and112Fb (FIG. 6(A)) to securing the gyro sensor unit 100 at the rearsurface of the housing 44. At the rear surface of the housing 44, athrough hole 48 c for attaching a strap 56 (FIG. 5) is also provided.

FIGS. 3(A) and 3(B) are an illustrative view showing one example of anappearance of the Nunchaku or the second controller 36 itself. FIG. 3(A)is a perspective view of the second controller 36 as seeing it fromabove rear, and FIG. 3(B) is a perspective view of the second controller36 as seeing it from below front. In FIG. 3(B), the cable 38 of thesecond controller 36 is omitted.

The second controller 36 has a housing 52 formed by plastic molding, forexample. The housing 52 is formed into an approximately thin longelliptical shape in the forward and backward direction (Z-axisdirection) when viewed from plane, and the width of the right and leftdirection (X-axis direction) at the rear end is narrower than that ofthe front end. Furthermore, the housing 52 has a curved shape as a wholewhen viewed from a side, and downwardly curved from a horizontal portionat the front end to the rear end. The housing 52 has a size small enoughto be held by one hand of a child and an adult similar to the firstcontroller 34 as a whole, and has a longitudinal length (in the Z-axisdirection) slightly shorter than that of the housing 44 of the firstcontroller 34. Even with the second controller 36, the player canperform a game operation by operating buttons and a stick, and bychanging a position and a direction of the controller itself.

At the front end of the top surface of the housing 52, an analogjoystick 54 a is provided. At the end of the housing 52, a front edgeslightly inclined backward is provided, and on the front edge, a Cbutton 54 b and a Z button 54 c are vertically (Y-axis direction in FIG.3) provided. The analog joystick 54 a and the respective buttons 54 band 54 c are assigned appropriate functions according to a game programto be executed by the game apparatus 12. The analog joystick 54 a andthe respective buttons 54 b and 54 c provided to the second controller36 may be inclusively denoted by means of the reference numeral 88.

Inside the housing 52 of the second controller 36, an accelerationsensor 86 (FIG. 11) is provided. As the acceleration sensor 86, anacceleration sensor similar to the acceleration sensor 84 in the firstcontroller 34 is applied. More specifically, a three-axis accelerationsensor is applied in this embodiment, and detects accelerations in eachof the three axis directions such as an up and down direction (Y-axialdirection shown), a right and left direction (X-axial direction shown),and a forward and backward direction (Z-axial direction shown) of thesecond controller 36. Accordingly, similar to the case of the firstcontroller 34, proper arithmetic process is performed on the detectedaccelerations to thereby calculate a tilt and a rotation of the secondcontroller 36 and an attitude of the acceleration sensor 86 in thedirection of gravity. Furthermore, it is possible to calculate a motionapplied to the first controller 34 by swinging, etc. as with the case ofthe second controller 36.

FIG. 4 shows one example of an appearance of the connector 40 of thesecond controller 36. FIG. 4 is a perspective view of the connector 40as seeing it from below front. Here also, the cable 38 is omitted. Theconnector 40 has a housing 122 formed by a plastics molding, forexample. At the bottom surface of the housing 122, a hook 124 isprovided. The hook 124 is for intrinsically hanging and retaining a cordof the strap 56 attached to the first controller 34 when the connector40 is directly connected to the first controller 34 (or the connector42) as shown in FIG. 5. By hanging and retaining the cord of the strap56 on the hook 144, it is possible to tightly secure the firstcontroller 34 and the second controller 36.

FIGS. 6(A) and 6(B) show one example of an appearance of the gyro sensorunit 100. FIG. 6(A) is a perspective view of the gyro sensor unit 100 asseeing it from above front, and FIG. 6(B) is a perspective view of thegyro sensor unit 100 as seeing it from rear back.

The gyro sensor unit 100 has a housing 110 formed by a plastics molding,for example. The housing 110 has an appropriately rectangularparallelepiped shape, and the length is ⅕ of the length of the housing44 of the first controller 34, and the width and thickness areapproximately the same as those of the housing 44. The player can play agame operation by changing a position and a direction of the firstcontroller 34 itself even if the first controller 34 is attached withthe gyro sensor unit 100.

On the front surface and the rear surface of the housing 110, theabove-described connectors 106 and 108 are respectively provided, on theside surfaces of the housing 110, a pair of release buttons 112 a and112 b are provided, and the bottom surface of the housing 110, a lockswitch 114 is provided. An approximately sphere concave portion 110 a isprovided from the end of the front surface of the housing 110 to thebottom surface such that the through hole 48 c for the strap 56 isexposed in a state that the first controller 34 is attached with thegyro sensor unit 100 (FIG. 8).

The pair of release buttons 112 a and 112 b, and a pair of hooks 112Faand 112Fb which are respectively associated with the release buttons 112a and 112 b are provided on a front surface of the housing 110 atpositions symmetrically with each other in a horizontal direction(X-axis direction) about the connector 106. When the connector 106 isconnected to the connector 42 in order to attach the gyro sensor unit100 to the first controller 34, the pair of hooks 112Fa and 112Fb isinserted to the pair of through holes 48 a and 48 b (FIG. 2(A)) at therear surface of the housing 44, and the pawls of the hooks 112Fa and112Fb are engaged with the inner wall of the housing 44. Thus, the gyrosensor unit 100 is fixed to the rear surface of the first controller 34.

FIG. 8 shows the gyro sensor unit 100 thus attached to the firstcontroller 34. When the pair of release buttons 112 a and 112 b arepushed in this state, the engagement of the pawls are released to allowthe gyro sensor unit 100 to be detached from the first controller 34.

A lock switch 114 is a sliding switch for locking such the releasebuttons 112 a and 112 b. The release buttons 112 a and 112 b cannot bepushed (locked state) when the lock switch 114 is in a first position(toward the rear side, for example), and the release buttons 112 a and112 b can be pushed (released state) when the lock switch 114 is in asecond position (toward the front, for example). Within the housing 110,locking springs 118 a and 118 b (FIG. 7) are provided and constructed soas to be repulsed when the release button 112 a and 112 b are pushed,and so as to maintain the engaged state when the release button 112 aand 112 b are not pushed. Thus, in order to remove the gyro sensor unit100, the user has to push the release buttons 112 a and 112 b aftersliding the lock switch 114 from the first position to the secondposition.

Since the gyro sensor unit 100 is attached to the rear surface of thefirst controller 34, a centrifugal force applied to the gyro sensor unit100 during the game is exclusively worked such that the gyro sensor unit100 is pressed against the first controller 34. Furthermore, the gyrosensor unit 100 is fixed to the rear surface of the first controller 34by the hooks 112Fa and 112Fb while the lock switch 114 for releasing thehooks 112Fa and 112Fb is provided to the release buttons 112 a and 112b, and therefore, even during operating the game, it is possible tobring about a tightly secured state between the gyro sensor unit 100 andthe first controller 34.

On the rear surface of the housing 110, a concave portion 110 b capableof housing the connector cover 116 to be attached to the connector 108is provided on the periphery of the connector 108. The connector cover116 has a narrow thin (that is, can be bended) protrusion 116 aextending in a forward and backward (Z-axis direction) direction on theone end of the main surface. The end portion of the protrusion 116 a isengaged with the housing 110, and the connector cover 116 is captivefrom the housing 110 in a state that it is removed from the connector108.

The connector cover 116 has a narrow thick (that is, is hard to bend)protrusion 116 b extending in a right and left direction (X-axisdirection) on the other end of the main surface. The thickness (heightof the Z-axis direction) of the protrusion 116 b is approximately thesame as the thickness (height of the Y-axis direction) of the hook 124(FIG. 4) provided to the connector 40 of the second controller 36. In acase that the second controller 36 is connected to the first controller34 via the gyro sensor unit 100, the main surface of the connector cover116 is made level to be engaged with the side surface of the hook 124 ofthe protrusion 116 b as shown in FIG. 9. By thus incorporating theconnector cover 116 detached from the connector 108 into the connector40, the connector 40 is tightly secured to the gyro sensor unit 100 aswell as is improved in operability and appearance.

FIG. 7 shows one example of a structure of the gyro sensor unit 100. Thegyro sensor unit 100 also has a gyro substrate 120 and a support member122 in addition to the above-described housing 110, connectors 106 and108, release buttons 112 a and 112 b, hooks 112Fa and 112Fb, lock switch114, connector cover 116 and locking springs 118 a and 118 b. The gyrosubstrate 120 is connected to each of the connectors 106 and 108 by asignal wire, and the support member 122 supports the gyro substrate 120and the connectors 106 and 108.

The gyro substrate 120 is provided with a gyro sensor 104. The gyrosensor 104 is made up of two chips including one-axis gyro sensor 104 aand two-axis gyro sensor 104 b. The gyro sensor 104 a is for detectingan angular velocity (angular velocity about the Y axis) relating to ayaw angle, and the gyro sensor 104 b is for detecting two angularvelocities (angular velocity about the Z axis and angular velocity aboutthe X axis) relating to a roll angle and a pitch angle. The gyro sensors104 a and 104 b are arranged in parallel on a top surface 120 a of thegyro substrate 120.

Here, the arrangement of the gyro sensors 104 a and 104 b is notrestricted to that shown in FIG. 7. In another embodiment, the gyrosensor 104 a is horizontally provided on one of the top surface 120 aand the bottom surface 120 b of the gyro substrate 120 while the gyrosensor 104 b is horizontally provided on the other of the top surface120 a and the bottom surface 120 b of the gyro substrate 120 so as to beopposed to the gyro sensor 104 a with the gyro substrate 120therebetween. In another embodiment, the gyro sensor 104 a is verticallyprovided on one of the top surface 120 a and the bottom surface 120 b ofthe gyro substrate 120 while the gyro sensor 104 b is horizontallyprovided on the other of the top surface 120 a and the bottom surface120 b of the gyro substrate 120.

Furthermore, the gyro sensor 104 is not restricted to be made up of twochips, may be made up of three one-axis gyro sensors (three chips), ormay be made up of one three-axis gyro sensor (one chip). In either case,a position and a direction of each of the chips are decided so as toproperly detect the above-described three angular velocities. Inaddition, under certain circumstances, the gyro sensor 104 may be madeup of one two-axis gyro sensor, or may be mad up of one or two one-axisgyro sensor.

It should be noted that the shapes of the first controller 34 shown inFIG. 2, the second controller 36 shown in FIG. 3 and FIG. 4 and the gyrosensor unit 100 shown in FIG. 6, and the shape, the number and thesetting position of the button (switch or stick, etc.) are merely oneexample, and may be changed to another shape, number and settingposition, etc. as necessary.

Here, the sensor is a gyro sensor (angular velocity sensor) in apreferred embodiment, but may be other motion sensors, such as anacceleration sensor, a velocity sensor, a displacement sensor, arotation angle sensor, etc. Other than the motion sensors, there are aslant sensor, an image sensor, an optical sensor, a pressure sensor, amagnetic sensor, a temperature sensor, etc., and in a case that eithersensor is added, an operation by utilizing an object to be detected ofthe sensor is made possible. In a case that either sensor is utilized,the operating device can be added with the sensor while utilizinganother device conventionally connected to the operating device as itis.

In addition, the power source of the controller 14 is applied by abattery (not illustrated) which is replaceably accommodated in the firstcontroller 34. The power is supplied to the second controller 36 via theconnector 40 and the cable 38. If the gyro sensor unit 100 is connectedto the first controller 34, the power is supplied to the gyro sensorunit 100 via the connectors 42 and 106. Alternatively, if the secondcontroller 36 is connected to the gyro sensor unit 100, a part of thepower supplied from the first controller 34 to the gyro sensor unit 100is also applied to the second controller 36 via the connector 108, theconnector 40 and the cable 38.

FIG. 10 shows a block diagram showing an electric configuration of thevideo game system 10 in FIG. 1 embodiment. Although illustration isomitted, respective components within the housing 16 are mounted on theprinted-circuit board. As shown in FIG. 10, the game apparatus 12 isprovided with a CPU 44 functioning as a game processor. Furthermore, theCPU 44 is also connected with a system LSI 62. The system LSI 62 isconnected with an external main memory 46, a ROM/RTC 48, a disk drive 54and an AV IC 56.

The external main memory 66 is utilized as a work area and a buffer areaof the CPU 60 by storing programs such as a game program, etc. andvarious data. The ROM/RTC 68, which is a so-called boot ROM, isincorporated with a program for activating the game apparatus 12, and isprovided with a time circuit for counting a time. The disk drive 74reads program, image data, sound data, etc. from the optical disk 18,and writes them in an internal main memory 62 e described later or theexternal main memory 66 under the control of the CPU 60.

The system LSI 62 is provided with an input-output processor 62 a, a GPU(Graphics Processor Unit) 62 b, a DSP (Digital Signal Processor) 62 c, aVRAM 62 d and an internal main memory 62 e, and these are connected withone another by internal buses although illustration is omitted. Theinput-output processor (I/O processor) 62 a executes transmission andreception of data and executes download of the data. The transmittingand receiving the data and downloading the data are described in detaillater.

The GPU 62 b is made up of a part of a drawing means, and receives agraphics command (construction command) from the CPU 60 to generate gameimage data according to the command. Additionally, the CPU 60 applies animage generating program required for generating game image data to theGPU 62 b in addition to the graphics command.

Although illustration is omitted, the GPU 62 b is connected with theVRAM 62 d as described above. The GPU 62 b accesses the VRAM 62 d toacquire data (image data: data such as polygon data, texture data, etc.)required to execute the construction command. Here, the CPU 60 writesimage data required for drawing to the VRAM 62 d via the GPU 62 b. TheGPU 62 b accesses the VRAM 62 d to produce game image data for drawing.

In this embodiment, a case that the GPU 62 b generates game image datais explained, but in a case of executing an arbitrary application exceptfor the game application, the GPU 62 b generates image data as to thearbitrary application.

Furthermore, the DSP 62 c functions as an audio processor, and generatesaudio data corresponding to a sound, a voice, music, or the like to beoutput from the speaker 28 by means of the sound data and the sound wave(tone) data stored in the internal main memory 62 e and the externalmain memory 66.

The game image data and audio data which are generated as describedabove are read by the AV IC 76, and output to the monitor 26 and thespeaker 28 via the AV connector 78. Accordingly, a game screen isdisplayed on the monitor 26, and a sound (music) necessary for the gameis output from the speaker 28.

Furthermore, the input-output processor 62 a is connected with a flashmemory 64, a wireless communication module 70 and a wireless controllermodule 72, and is also connected with an expanding connector 80 and aconnector for external memory card 82. In addition, the wirelesscommunication module 70 is connected with an antenna 70 a, and thewireless controller module 72 is connected with an antenna 72 a.

Although illustration is omitted, the input-output processor 62 a cancommunicate with other game apparatuses and various servers to beconnected to a network via the wireless communication module 70. Itshould be noted that it is possible to directly communicate with anothergame apparatus without going through the network. The input-outputprocessor 62 a periodically accesses the flash memory 64 to detect thepresence or absence of data (referred to as data to be transmitted)being required to be transmitted to a network, and transmits it to thenetwork via the wireless communication module 70 and the antenna 70 a ina case that data to be transmitted is present. Furthermore, theinput-output processor 62 a receives data (referred to as received data)transmitted from another game apparatuses via the network, the antenna70 a and the wireless communication module 70, and stores the receiveddata in the flash memory 64. In a case that the received data does notsatisfy a constant condition, the received data is abandoned as it is.In addition, the input-output processor 62 a receives data (downloaddata) downloaded from the download server via the network, the antenna70 a and the wireless communication module 70, and stores the downloaddata in the flash memory 64.

Furthermore, the input-output processor 62 a receives input datatransmitted from the controller 34 via the antenna 72 a and the wirelesscontroller module 72, and (temporarily) stores it in the buffer area ofthe internal main memory 62 e or the external main memory 66. The inputdata is erased from the buffer area after being utilized in theprocessing by the CPU 60 (game processing, for example).

In this embodiment, as described above, the wireless controller module72 makes communications with the controller 34 in accordance with theBluetooth standard. This makes it possible for the game apparatus 12 tonot only fetch data from the controller 14 but also to transmit apredetermined command to the controller 14 and control a motion of thecontroller 14 from the game apparatus 12.

In addition, the input-output processor 62 a is connected with theexpanding connector 80 and the connector for external memory card 82.The expanding connector 80 is a connector for interfaces, such as USB,SCSI, etc., and capable of connecting medium such as an external storageand peripheral devices such as another controller different form thecontroller 34. Furthermore, the expanding connector 80 is connected witha cable LAN adaptor, and capable of utilizing the cable LAN in place ofthe wireless communication module 70. The connector for memory card 82can be connected with an external storage like a memory card. Thus, theinput-output processor 62 a, for example, accesses the external storagevia the expanding connector 80 and the connector for external memorycard 82 to store and read the data in and from the same.

Although detailed explanation is omitted, when the power button isturned on, the system LSI 62 set in a mode of a normal energized statein which the respective components of the game apparatus 12 are suppliedwith power through an AC adapter not shown (referred to as “normalmode”). On the other hand, when the power button is turned off, thesystem LSI 62 is set to a mode in which only a part of the components ofthe game apparatus 12 is supplied with power, and the power consumptionis reduced to minimum (hereinafter referred to as a “standby mode”).

In this embodiment, in a case that the standby mode is set, the systemLSI 62 issues an instruction to stop supplying the power to thecomponents except for the input-output processor 62 a, the flash memory64, the external main memory 66, the ROM/RTC 68, the radio communicationmodule 70, and the radio controller module 72. Accordingly, in thisembodiment, in the standby mode, the CPU 60 never performs anapplication.

Although the system LSI 62 is supplied with power even in the standbymode, generation of clocks to the GPU 62 b, the DSP 62 c and the VRAM 62d are stopped so as not to be driven, realizing reduction in powerconsumption.

Although illustration is omitted, inside the housing 14 of the gameapparatus 12, a fan is provided for excluding heat of the IC, such asthe CPU 60, the system LSI 62, etc. to outside. In the standby mode, thefan is also stopped.

However, in a case that the standby mode is not desired to be utilized,the standby mode is made unusable to thereby completely stop the powersupply to all the circuit components when the power button is turnedoff.

Furthermore, switching between the normal mode and the standby mode canbe performed by turning on and off the power switch 80 i of thecontroller 34 by remote control. If the remote control is not performed,setting is made such that the power supply to the radio controllermodule 72 a is not performed in the standby mode.

The reset button is also connected with the system LSI 62. When thereset button is pushed, the system LSI 62 restarts the activationprogram of the game apparatus 12. The eject button is connected to thedisk drive 74. When the eject button is pushed, the optical disk 22 isremoved from the disk drive 74.

FIG. 11 shows one example of an electric configuration of the controller14 as a whole when the first controller 34 and the second controller 36are connected via the gyro sensor unit 100.

The first controller 34 includes a communication unit 88, and thecommunication unit 88 is connected with the operating portion 46, theimaged information arithmetic section 50, the acceleration sensor 84,and the connector 42. The operating portion 46 indicates theabove-described operation buttons or operation switches 46 a-46 i. Whenthe operating portion 46 is operated, data indicating the operation isapplied to the communication unit 88. From the imaged informationarithmetic section 50, data indicating the position coordinates of themarkers 30 a and 30 b within the object scene is output to thecommunication unit 88.

In addition, as described above, the controller 34 is provided with theimaged information arithmetic section 50. The imaged informationarithmetic section 50 is made up of an infrared rays filter 50 a, a lens50 b, an imager 50 c, and an image processing circuit 50 d. The infraredrays filter 50 a passes only infrared rays from the light incident fromthe front of the controller 34. As described above, the markers 30 a and30 b placed near (around) the display screen of the monitor 26 areinfrared LEDs for outputting infrared lights forward the monitor 26.Accordingly, by providing the infrared rays filter 50 a, it is possibleto image the image of the markers 30 a and 30 b more accurately. Thelens 50 b condenses the infrared rays passing thorough the infrared raysfilter 50 a to emit them to the imager 50 c. The imager 50 c is a solidimager, such as a CMOS sensor and a CCD, for example, and images theinfrared rays condensed by the lens 50 b. Accordingly, the imager 50 cimages only the infrared rays passing through the infrared rays filter50 a to generate image data. Hereafter, the image imaged by the imager50 c is called an “imaged image”. The image data generated by the imager50 c is processed by the image processing circuit 50 d. The imageprocessing circuit 50 d calculates positions of objects to be imaged(markers 30 a and 30 b) within the imaged image, and outputs eachcoordinate value indicative of the position to the processor 70 asimaged data (marker coordinate data to be described later) for eachfourth predetermined time. It should be noted that a description of theprocess in the image processing circuit 50 d is made later.

FIG. 12 is an illustrative view summarizing a state when a player playsa game by utilizing the controller 34. It should be noted that the sameis true for a case that another application is executed or a DVD isreproduced as well as a game playing. As shown in FIG. 12, when playingthe game by means of the controller 34 in the video game system 10, theplayer holds the controller 34 with one hand. Strictly speaking, theplayer holds the controller 34 in a state that the front end surface(the side of the incident light opening 44 b of the light imaged by theimaged information arithmetic section 50) of the controller 34 isoriented to the markers 30 a and 30 b. It should be noted that as can beunderstood from FIG. 1, the markers 30 a and 30 b are placed in parallelwith the horizontal direction of the screen of the monitor 26. In thisstate, the player performs a game operation by changing a position onthe screen indicated by the controller 34, and changing a distancebetween the controller 34 and each of the markers 30 a and 30 b.

Although it is difficult to view in FIG. 12, this is true for a casethat the gyro unit 100 described above is connected to the controller34.

FIG. 13 is a view showing viewing angles between the respective markers30 a and 30 b, and the controller 34. As shown in FIG. 13, each of themarkers 30 a and 30 b emits infrared ray within a range of a viewingangle θ1. Also, the imager 50 c of the imaged information arithmeticsection 50 can receive incident light within the range of the viewingangle θ2 taking the line of sight of the controller 34 as a center. Forexample, the viewing angle θ1 of each of the markers 30 a and 30 b is34° (half-value angle) while the viewing angle θ2 of the imager 50 c is41°. The player holds the controller 34 such that the imager 50 c isdirected and positioned so as to receive the infrared rays from themarkers 30 a and 30 b. More specifically, the player holds thecontroller 34 such that at least one of the markers 30 a and 30 b existsin the viewing angle θ2 of the imager 50 c, and the controller 34 existsin at least one of the viewing angles θ1 of the marker 30 a or 30 b. Inthis state, the controller 34 can detect at least one of the markers 30a and 30 b. The player can perform a game operation by changing theposition and the attitude of the controller 34 in the range satisfyingthe state.

Here, if the position and the attitude of the controller 34 are out ofthe range, the game operation based on the position and the attitude ofthe controller 34 cannot be performed. The above-described range iscalled an “operable range” hereafter.

If the controller 34 is held within the operable range, an image of eachof the markers 30 a and 30 b is imaged by the imaged informationarithmetic section 50. That is, the imaged image obtained by the imager50 c includes an image (object image) of each of the markers 30 a and 30b as an object to be imaged. FIG. 14 is a view showing one example ofthe imaged image including the object images. The image processingcircuit 80 d calculates coordinates (marker coordinates) indicative ofthe position of each of the markers 30 a and 30 b in the imaged image byutilizing the image data of the imaged image including the objectimages.

Since the object image appears as a high-intensity part in the imagedata of the imaged image, the image processing circuit 50 d firstdetects the high-intensity part as a candidate of the object image.Next, the image processing circuit 50 d determines whether or not thehigh-intensity part is the object images on the basis of the size of thedetected high-intensity part. The imaged image may include images otherthan the object images due to sunlight through a window and light of afluorescent lamp in the room as well as the images 30 a′ and 30 b′corresponding to the two markers 30 a and 30 b as the object images. Thedetermination processing whether or not the high-intensity part is theobject images is executed for discriminating the images 30 a′ and 30 b′of the two markers 30 a and 30 b as the object images from the imagesother than them, and accurately detecting the object images. Morespecifically, in the determination process, it is determined whether ornot the detected high-intensity part is within the size of a presetpredetermined range. Then, if the high-intensity part is within the sizeof the predetermined range, it is determined that the high-intensitypart represents the object images. On the contrary, if thehigh-intensity part is not within the size of the predetermined range,it is determined that the high-intensity part represents the imagesother than the object images.

In addition, as to the high-intensity part which is determined torepresent the object images as a result of the above-describeddetermination processing, the image processing circuit 50 d calculatesthe position of the high-intensity part. More specifically, thebarycenter position of the high-intensity part is calculated. Here, thecoordinates of the barycenter position is called a “marker coordinate”.Also, the barycenter position can be calculated with more detailed scalethan the resolution of the imager 50 c. Now, the resolution of theimaged image imaged by the imager 50 c shall be 126×96, and thebarycenter position shall be calculated with the scale of 1024×768. Thatis, the marker coordinate is represented by the integer from (0, 0) to(1024, 768).

Additionally, the position in the imaged image shall be represented by acoordinate system (XY coordinate system) taking the upper left of theimaged image as an origin point, the downward direction as an Y-axispositive direction, and the right direction as an X-axis positivedirection.

Also, if the object image is properly detected, two high-intensity partsare determined as the object images by the determination process, andtherefore, two marker coordinates are calculated. The image processingcircuit 50 d outputs data indicative of the calculated two markercoordinates. The data of the output marker coordinates (markercoordinate data) is included in the input data by the processor 70 asdescribed above, and transmitted to the game apparatus 12.

The game apparatus 12 (CPU 60) detects the marker coordinate data fromthe received input data to thereby calculate an instructed position(instructed coordinate) by the controller 34 on the screen of themonitor 26 and a distances from the controller 34 to each of the markers30 a and 30 b on the basis of the marker coordinate data. Morespecifically, from the position of the mid point of the two markercoordinates, a position to which the controller 34 faces, that is, aninstructed position is calculated. The distance between the objectimages in the imaged image is changed depending on the distance betweenthe controller 34 and each of the markers 30 a and 30 b, and therefore,the game apparatus 12 can grasp the distance between the controller 34and each of the markers 30 a and 30 b by calculating the distancebetween the two marker coordinates.

Returning to FIG. 11, the data indicating the acceleration detected bythe acceleration sensor 84 is also output to the communication unit 88.The acceleration sensor 84 has a sampling period being in the order of200 frames/seconds at the maximum, for example.

The connector 42 is connected with the connector 106 of the gyro sensorunit. The gyro sensor unit 100 includes the microcomputer 102 and thegyro sensor 104 inside thereof. The gyro sensor 104 shows theabove-described gyro sensors 104 a and 104 b, and has a sampling periodsimilar to the acceleration sensor 84, for example. The microcomputer102 outputs to the communication unit 88 data indicating the angularvelocity detected by the gyro sensor 104 via the connector 106 and theconnector 42.

The connector 108 of the gyro sensor unit 100 is connected with theconnector 40 of the cable 38 extending from the second controller 36.The connector 40 is connected with an operating portion 88 and anacceleration sensor 86 of the second controller 36. The operatingportion 88 shows the above-described stick 54 a and operation buttons 54b, 54 c. When the operating portion 54 is operated, data indicating theoperation is applied to the microcomputer 102 of the gyro sensor unit100 via the cable 38, the connector 40 and the connector 42. Themicrocomputer 102 outputs the data to the communication unit 88 via theconnector 106 and the connector 42. The acceleration sensor 86 also hasa sampling period similar to the acceleration sensor 84, and the dataindicating the acceleration thus detected is also output to thecommunication unit 88 by the microcomputer 102.

Here, each output to the above-described communication unit 88 isexecuted at a cycle of 1/200 seconds. Accordingly, during arbitrary1/200 seconds, operation data from the operating portion 46, positioncoordinate data from the imaged information arithmetic section 50,acceleration data from the acceleration sensor 84, angular velocity datafrom the gyro sensor 104, operation data from the operating portion 54,and acceleration data from the acceleration sensor 86 are output to thecommunication unit 88 once for each of them.

FIG. 15 shows an important part of the gyro sensor unit 100 of theentire configuration shown in FIG. 11. Each of the above-describedconnector 42, connector 106, connector 108 and connector 40 is aconnector of six pins, for example, in which an Attach pin forcontrolling a variable “Attach” indicating a connected state between theconnectors is included. The Attach is changed between “Low” indicatingthat the connectors are not connected, and “High” indicating that theconnectors are connected. In what follows, the Attach between theconnector 42 and the connector 106, that is, between the firstcontroller 34 and the gyro sensor unit 100 is called “Attach1”, and theAttach between the connector 108 and the connector 40, that is, the gyrosensor unit 100 and the second controller 36 is called “Attach2”.

Even if the first controller 34 is attached with the gyro sensor unit100, if the application is a gyro-incompatible type, and the gyro sensorunit 100 is not connected with the second controller 36, the Attach1 iscontrolled to be “Low” such that the gyro sensor unit 100 is not viewedfrom the gyro-incompatible application by the microcomputer 102 of thegyro sensor unit 100 (standby mode: see FIG. 14). In the standby mode, apower supply to the gyro sensor 104 is stopped to make the gyro functioninactive. The microcomputer 102 exclusively performs a mode selectionbased on the Attach2 and a power source management based on aninstruction from the gyro-compatible application.

The other two pins out of the aforementioned six pins are assigned I2Cbuses, and the gyro sensor unit 100 further includes a bus switch SW forconnecting/isolating the I2C bus on the side of the first controller 34and the I2C bus on the side of the second controller 36. The bus switchSW is turned on by the microcomputer 102 when the gyro-incompatibleapplication is executed in a state that the second controller 36 isconnected to the first controller 34 via the gyro sensor unit 100.Thereafter, the data from the second controller 36 is output to thecommunication unit 88 through the I2C bus without passing through themicrocomputer 102 (bypass mode: see FIG. 14). Thus, the microcomputer102 merely performs a mode selection and a power source managementsimilar to the standby mode, which reduces electric power consumption.Furthermore, the gyro-incompatible application can be executed even ifthe gyro sensor unit 100 is attached. When the bus switch SW is turnedoff, the bus is connected to the microcomputer 102, and the data to beoutput to the first controller 34 is controlled by the microcomputer102.

The bus switch SW is turned on even in the standby mode. This makes itpossible for the gyro-compatible type application to confirm whether ornot the first controller 34 is attached with the gyro sensor unit 100with reference to a special address of the I2C bus even if the Attach1is controlled to “Low” as described above.

It should be noted that the gyro sensor unit 100 is prepared with fourmodes including a “gyro” mode and a “gyro & second controller” mode inaddition to the above-described “standby” and “bypass” modes. In theformer two modes, the bus switch SW is turned off.

The microcomputer 102 of the gyro sensor unit 100 includes two kinds ofA/D conversion circuits 102 a and 102 b, and the angular velocitysignals about the three axes output from the gyro sensor 104 are appliedto each of the A/D conversion circuits 102 a and 102 b. In the A/Dconversion circuit 102 a, A/D converting processing of a high angularvelocity mode for regarding all the detection range by the gyro sensor104 (±360°/sec) as a target, for example, is executed, and in the A/Dconversion circuit 102 b, A/D converting processing of a low angularvelocity mode for regarding a part of the detection range by the gyrosensor 104 (±90°/sec, for example) as a target is executed. Themicrocomputer 102 outputs any one of the two kinds results of the A/Dtransformation as angular velocity data.

More specifically, when two kinds of angular velocity data correspondingto a certain time are output from the A/D conversion circuits 102 a and102 b, the microcomputer 102 first determines whether or not withrespect to the angular velocity data of the low angular velocity mode,the value A falls within the range of a first threshold value Th1 to asecond threshold value Th2 (>Th1), that is, a condition “Th1≦A≦Th2” issatisfied, for each of the axis, that is, the yaw axis, the roll axis,and the pitch axis. Next, on the basis of these three determinationresults, any one of the low angular velocity mode and the high angularvelocity mode is selected. For example, with respect to each of thethree determination results, if “YES”, the low angular velocity mode isselected for each axis, and if “NO”, the high angular velocity mode isselected for each axis. Then, the angular velocity data according to themode selected for each axis is output along with the mode informationindicating the selected mode. That is, by changing accuracy of the datadepending on the angular velocity, it is possible to output data withhigh accuracy at low speeds even if the data amount is equal.

FIGS. 16(A) and 16(B) show a data format handled by the gyro sensor unit100. FIG. 16(A) shows a data format for gyro sensor unit 100, and FIG.13(B) shows a data format for second controller 36. The data for gyrosensor unit 100 includes yaw angular velocity data, roll angularvelocity data and pitch angular velocity data, and yaw angular velocitymode information, roll angular velocity mode information and pitchangular velocity mode information, and second connector connectioninformation and gyro/second controller identifying information.

Here, as shown in FIG. 17, the rotation about the Y axis is representedby a yaw angle, the rotation about X axis is represented by a pitchangle, and the rotation about Z axis is represented by a roll angle.

The yaw angular velocity data, the roll angular velocity data and thepitch angular velocity data, each of which is 14 bits data, for example,are respectively obtained, through an A/D conversion, from a yaw angularvelocity signal, a roll angular velocity signal and a pitch angularvelocity signal which are output from the gyro sensor 104. Each of theyaw angular velocity mode information, the roll angular velocity modeinformation and the pitch angular velocity mode information isinformation of one bit indicating a corresponding mode of each of theangular velocity data, and changed between “0” corresponding to the highangular velocity mode and “1” corresponding to the low angular velocitymode.

The second controller connection information is information of one bitto indicate whether or not the second controller 36 is connected to theconnector 106, and is changed between “0” indicating a non-connectionand “1” indicating a connection. The gyro/second controller identifyinginformation is information of one bit to identify whether the data isdata output from the gyro sensor unit 100 or the data output from thesecond controller 36, and is changed between “1” indicating that this isfrom the gyro sensor unit 100 and “0” indicating that this is from thesecond controller 36.

On the other hand, the data for second controller 36 includes X stickoperation data and Z stick operation data respectively indicating astick operation in the right and left direction (X-axis direction) and astick operation in the forward and reward direction (Z-axis direction),and X acceleration data, Y acceleration data and Z acceleration datarespectively indicating an acceleration in the X-axis direction, anacceleration in the Y-axis direction and an acceleration in the Z-axisdirection, and button operation data, second connector connectioninformation, and gyro/second controller identifying information.

The gyro sensor unit 100 alternately outputs data for gyro according tothe format shown in FIG. 16(A) and data for second controller accordingto the format shown in FIG. 16(B) to the communication unit 88 at acycle of 1/200 seconds, for example. Accordingly, the data in the one ofthe format is consequently output at a cycle of 1/100 seconds, but thisis much shorter than the cycle of 1/60 seconds as a general processingperiod for game processing, etc., and therefore, even if the data isalternately output, both of the data can be used for one frame at thesame time in the game processing.

The communication unit 88 shown in FIG. 11 includes a microcomputer(micon) 90, a memory 92, a wireless module 94, and an antenna 96. Themicon 90 transmits the obtained data to the game apparatus 12 andreceives data from the game apparatus 12 by controlling the wirelessmodule 94 while using the memory 92 as a memory area (working area andbuffer area) in processing.

The data output to the communication unit 88 from the gyro sensor unit100 is temporarily stored in the memory 92 through the microcomputer 90.The data output to the communication unit 88 from the operating portion46, the imaged information arithmetic section 50 and the accelerationsensor 84 within the first controller 34 are also temporarily stored inthe memory 92. The microcomputer 90 outputs data stored in the memory 92to the wireless module 94 as controller data when a transmission timingto the game apparatus 12 has come. The controller data includes the datafor first controller in addition to the data for gyro and/or the datafor second controller shown in FIG. 16(A) and FIG. 16(B). The data forfirst controller includes X acceleration data, Y acceleration data and Zacceleration data based on an output from the acceleration sensor 84,position coordinate data based on an output from the imaged informationarithmetic section 50, and button operation data (key data) based on anoutput from the operating portion or the input means 46.

The wireless module 94 modulates a carrier at a predetermined frequencyby the controller data, and emits its weak radio wave signal from theantenna 96 by using a short-range wireless communication technique, suchas Bluetooth (trademarks). Namely, the controller data is modulated tothe weak radio wave signal by the wireless module 94 and transmittedfrom the first controller 34. The weak radio wave signal is received bythe Bluetooth communication unit 74 of the game apparatus 12. The weakradio wave thus received is subjected to demodulating and decodingprocessing, so that the game apparatus 12 can obtain the controllerdata. The CPU 60 of the game apparatus 12 performs the game processingon the basis of the controller data obtained from the controller 14.Here, the wireless communication between the first controller 34 and thegame apparatus 12 may be executed according to another standard, such asa wireless LAN, etc.

In this game system 10, a user can make an input to an application likea game, or the like by moving the controller 14 itself other than abutton operation. In playing the game, for example, the user holds thefirst controller 34 (specifically, holding portion 44 a of the housing44: FIG. 2) with the right hand and the second controller 36 with theleft hand as shown in FIG. 18. As described above, the first controller34 includes the acceleration sensor 84 for detecting accelerations inthe three-axis directions, and the second controller 36 also includesthe acceleration sensor 86 as described before. When the firstcontroller 34 and the second controller 36 are moved by the player,acceleration values in the three-axis directions indicating the motionsof the respective controllers are detected by the acceleration sensor 84and the acceleration sensor 86. In a case that the gyro sensor unit 100is attached to the first controller 34, angular velocity values aboutthe three-axes indicating the motion of the first controller 34 itselfare further detected.

These detected values are transmitted to the game apparatus 12 in a formof the aforementioned controller data. In the game apparatus 12 (FIG.10), the controller data from the controller 14 is received by theinput-output processor 62 a via the antenna 72 a and the wirelesscontroller module 72, and the received controller data is written to abuffer area of the internal main memory 62 e or the external main memory66. The CPU 44 reads the controller data stored in the buffer area ofthe internal main memory 62 e or the external main memory 66, andrestores the detected values, that is, the values of the accelerationand/or the angular velocity detected by the controller 14 from thecontroller data.

Here, the angular velocity data has two modes of the high angularvelocity mode and the low angular velocity mode, and therefore, the twokinds of angular velocity restoring algorithms corresponding to the twokinds are prepared. In restoring the angular velocity value from theangular velocity data, the angular velocity restoring algorithmcorresponding to the mode of the angular velocity data is selected onthe basis of the angular velocity mode information.

The CPU 60 may execute processing for calculating a velocity of thecontroller 14 from the restored acceleration in parallel with such arestoring processing. In parallel therewith, a travel distance or aposition of the controller 14 can be evaluated from the calculatedvelocity. On the other hand, from the restored angular velocity, arotation angle of the controller 14 is evaluated. Here, the initialvalue (constant of integration) when the accelerations are accumulatedto calculate the velocity, and the angular velocities are accumulated tocalculate the rotation angle can be calculated from the positioncoordinate data from the imaged information arithmetic section 50, forexample. The position coordinate data can also be used for correctingthe errors accumulated due to the integration.

The game processing is executed on the basis of the variables thusevaluated, such as the acceleration, the velocity, the travel distance,the angular velocity, the rotation angle, etc. Accordingly, all of theprocessing described above need not to be executed, and the variablesnecessary for the game processing may be calculated as required. Itshould be noted that the angular velocity and the rotation angle canalso be calculated from the acceleration in principle, but this requiresa complex routine for the game program, which also imposes a heavyprocessing load on the CPU 60. By utilizing the gyro sensor unit 100, adevelopment of the program is made easy, and the processing load on theCPU 60 is reduced.

By the way, some games may be a game for single controller of utilizingonly the first controller 34 and other games may be a game for twocontrollers of utilizing the first controller 34 and the secondcontroller 36, and the respective games are classified into agyro-compatible type and a gyro-incompatible type. The first controller34 being a main controller is required for playing all the games.Furthermore, the second controller 36 being an expanding controller isconnected to the first controller 34 via the gyro sensor unit 100 ordirectly when the game for two controllers is played, and is removed ingeneral when the game for single controller is played.

On the other hand, the gyro sensor unit 100 being an expanding sensor oran expanding controller is not required when the gyro-incompatible gameis played, but it is not required to take the trouble to be removed.Thus, the gyro sensor unit 100 generally remains to be attached to thefirst controller 34, and dealt as a single unit with the firstcontroller 34. The second controller 36 is detachable similar to a casethat the gyro sensor unit 100 is not involved except that the connectiondestination of the connector 40 is changed from the connector 42 to theconnector 108.

FIG. 19 shows a table in which a control by the microcomputer 102 of thegyro sensor unit 100 is described for each mode. The mode prepared forthe gyro sensor unit 100 is four kinds of the aforementioned “standby”,“bypass”, “gyro” and “gyro and second controller”, and the target to becontrolled by the microcomputer 102 covers six items of “gyro function”,“gyro power source”, “bus switch”, “expanding connector”, “Attach1” and“I2C address”.

The gyro function is in a stopped state (No Active) in each of thestandby mode and the bypass mode, but is in a started-up state (Active)in each of the gyro mode and the gyro and second controller mode. Apower supply to the gyro power source, that is, the gyro sensor 104 isstopped (OFF) in each of the standby mode and the bypass mode, andexecuted (ON) in each of the gyro mode and the gyro and secondcontroller mode. The bus switch SW is connected (Connect) in each of thestandby mode and the bypass mode, and isolated (Disconnect) in each ofthe gyro mode and the gyro and second controller mode.

The expanding connector, that is, the connector 108 is in a started-upstate in each of the bypass mode and the gyro and second controllermode, and in a stopped state in each of the standby mode and the gyromode. The Attach1 is controlled to “Low” indicating an unconnected statein the standby mode, and to “High” indicating a connected state in eachof the bypass mode, the gyro mode and the gyro and second controllermode. In relation to the I2C address, a special address is noted only ineach of the standby mode and the bypass mode.

The mode switching is performed shown in a manner in FIGS. 20(A) and20(B). FIG. 20(A) shows switching processing in a case that theapplication is gyro-compatible, and FIG. 20(B) shows switchingprocessing in a case that the application is gyro-incompatible. Incommon to FIG. 20(A) and FIG. 20(B), that is, irrespective of whetherthe gyro-compatible application or the gyro-incompatible application,the gyro sensor unit 100 starts up in response to the gyro sensor unit100 itself being connected to the first controller 34, and enters in astandby mode being an initial mode. Here, when the second controller 36is connected to the gyro sensor unit 100, the standby mode shifts to thebypass mode, and when the second controller 36 is then removedtherefrom, the bypass mode is restored to the standby mode.

Here, the gyro-compatible application issues a call and a reset to thegyro sensor unit 100 in order to fetch angular velocity data asrequired. As described above, in this embodiment, it is possible tocontrol the controller from the game machine by the communication, andtherefore, by the application, it is possible to control the gyro sensorunit 100. Thus, when receiving a call from the application in thestandby mode, the gyro sensor unit 100 shifts to the gyro mode, and whenreceiving a reset from the application in the gyro mode, the gyro sensorunit 100 is restored to the standby mode. The gyro sensor unit 100shifts to the gyro and second controller mode when being connected withthe second controller 36 in the gyro mode, and is restored to the gyromode when being disconnected with the second controller 36 in the gyroand second controller mode. The gyro sensor unit 100 further shifts tothe bypass mode when receiving a reset from the application in the gyroand second controller mode, and is restored to the gyro and secondcontroller mode when receiving a call from the application in the bypassmode.

On the other hand, the gyro-incompatible application does not have afunction of performing a call and a reset with respect to the gyrosensor unit 100. Thus, when the gyro-incompatible application isexecuted, the mode of the gyro sensor unit 100 is merely switchedbetween the standby mode and the bypass mode as shown in FIG. 20(B).

The mode switching by the gyro sensor unit 100 is realized withreference to the table shown in FIG. 19 by the microcomputer 102, butthe detailed description thereof is omitted here.

One example of a virtual game by utilizing such a game system 10 isexplained with reference to the drawings. First, an outline of the gameis explained. This embodiment is equivalent to the above-describedgyro-compatible application, so that the gyro sensor unit 100 isattached to the remote controller 34, and the Nunchaku 36 is also used.The game in this embodiment is for competing scores, by moving a movingobject (first object) such as an arrow within a game space with ashooting apparatus (second object) such as a bow, depending on whetheror not the arrow hits a fixed object like a target, where the arrowhits. For example, the user can perform an operation by regarding theremote controller 34 as a bow and the Nunchaku 36 as an arrow fixed tothe bow in a posture shown in FIG. 29. That is, by the gyro sensor unit100 attached to the remote controller 34, an attitude of the remotecontroller 34 can be calculated, and therefore, it is possible tocontrol a direction to which the bow is faced in the game, and by theacceleration sensor of the Nunchaku 36, it is possible to detect amotion such as drawing a bow.

FIG. 21 is an illustrative view showing one example of a game screen 130of the above-described virtual game. In the game screen 130 shown inFIG. 21, a target (fixed object) 132 is displayed, and a player object136 shoots an arrow object 142 (FIG. 22) into the target object 132 byutilizing a bow object 134. The situation in FIG. 21 here is forillustrating a stage in which the player operates the A button 46 d(FIG. 2), for example, that is, a stage before the player object 136fixes the arrow to the bow.

A display area 138 for displaying the number of mistakes is formed at anupper left of the game screen 130, and a display area 140 for displayinga current score is formed at an upper right thereof.

In this embodiment, when the player pushes (turns on) a predeterminedbutton (A button 46 d or B button 46 h, for example) of the controller34 in a state that he or she poises to vertically hold the remotecontroller 34 as shown in FIG. 29, the screen in FIG. 21 is changed to ascreen shown in FIG. 22 in which the virtual camera is close to thearrow, and switched its view point to that viewed from the playerobject, which allows the arrow (moving) object 142 (FIG. 22) to be fixedto the bow object 134. Here, the image of the player object 136 includesan arm 136 a.

Thus, the reason why a shooting operation is made after the screen (viewpoint) is switched in response to the operation of the A button 46 d orthe B button 46 h is that the game player holding the controller 34connected with the gyro unit 100 has to be opposed to the monitor 26(FIG. 1) before start of a shooting operation. The gyro sensor 104 (FIG.11, FIG. 12) merely detects a change of the attitude of the gyro sensorunit 100 attached therewith, that is, the first controller or the remotecontroller 34, and never detects an absolute attitude of the remotecontroller 34. In other words, even if the player performs an operationto change the attitude of the controller 34 in a state that the playeris not opposed to the monitor 26, the attitude change data is input tothe game apparatus 12, that is, the CPU 60 (FIG. 10) as described above,so that proper game processing can be executed by the CPU 60. That is,the game player can operate the object within the game space in a statethe player does not face the monitor 26. However, this is unnatural, andtherefore, a shooting operation is made to be started after the playeris opposed to the monitor, and whereby the position and direction(attitude) of the controller 34 in the real space when the moving object142 is shot are guided to a desired position and a desired attitude.That is, it is desirable that the player starts the game with thecontroller 34 vertically holding while opposed to the monitor 26 asshown in FIG. 29. On the contrary, in a case that a game is played by aplurality of players, they can play the game as required similar to thegame played by a single player even if they are not to be opposed to themonitor 26.

According to the button operation, as shown in FIG. 22, the playerobject 136 sets (fixes) the arrow object 142 to the bow object 134. Inthat state, the player adjusts a moving direction (shooting direction)of the arrow object while vertically holding and moving the controller34.

On the game screen 130 shown in FIG. 22, the player object 136 which wasclearly displayed in FIG. 21 is displayed very lightly(semi-translucently), and only the target object 132 and the arrowobject 142 are clearly visually identified. The reason is that if theplayer object 136 is normally displayed, the target object 132 and thearrow object 142 are hidden under the player object 136, so that themoving direction (aim) of the arrow object 142 cannot be suitably set.

Although the moving direction of the arrow object 142 is adjusted or setin a state of FIG. 22 here, in the related art described before, this isperformed by an operation of the cross key, so that it takes a lot oftime. On the contrary thereto, in this embodiment, this is controlled bythe changes of the position and attitude of the controller 34 detectedby the gyro sensor 104 (FIG. 11, 12) attached to the controller 34. Thatis, by merely directing the controller 34 toward the target object 132displayed on the game screen 130, a planned moving direction (movingdirection) of the arrow object 142 can be decided, and therefore, it ispossible to quickly set the planned moving direction. Furthermore, theplayer can intuitively make an operation as if he or she actually holdsa bow to aim to a target.

Then, an operation of drawing the fixed arrow is performed by apredetermined operation by the user. For example, by drawing theNunchaku 36 connected to the controller 34 at accelerations equal to ormore than a constant speed in a direction close to the player (in adirection far away from the monitor 26) with the C button 54 b and the Zbutton 54 c (FIG. 3) attached thereto simultaneously pushed on (turnedon), the player can perform an operation such that the player object 136draws the arrow object 142. In a state that the arrow is drawn, thearrow is displayed toward the viewer as shown in FIG. 23. Furthermore,at this time, the shooting direction of the arrow may be displayed by anarrow object 144 in FIG. 23 so as to be aimed. In the state that thearrow is drawn as shown in FIG. 23 also, similar to the state shown inFIG. 22, by continuing to change the attitude of the controller 34, thedirection of the bow can be changed. That is, even while the bow isdrawn, it is possible to adjust the shooting direction of the arrow.

By simultaneously releasing (turning off) the C button 54 b and the Zbutton 54 c of the Nunchaku 36 after the moving direction of the arrowobject 142 is decided in FIG. 22, that is, FIG. 23, the arrow object 142is released from the bow object 134 (FIG. 21) to fly to the decidedmoving direction at a predetermined initial velocity. The arrow object142 flies, while drawing a parabolic orbit according to a physicalcalculation, etc., toward the target object 132 when the player's aim isaccurate. The animation showing the state is displayed on the gamescreen 130 shown in FIG. 24. The reference numeral 142 a denotes ananimation image of the arrow object 142.

Next, the game processing for carrying out the above-described game isexplained in detail. FIG. 25 is an illustrative view showing a memorymap of the internal main memory 62 e or the external main memory 66shown in FIG. 2. As shown in FIG. 25, the main memory (62 e, 46)includes a program memory area 150 and a data memory area 152.Additionally, the detailed contents of the data memory area 152 areshown in FIG. 26.

The program memory area 150 stores a game program, and the game programis made up of a game main processing program 150 a, an image generatingprogram 150 b, an image displaying program 150 c, an angular velocitydetecting program 150 d, an acceleration detecting program 150 e, aposing processing program 150 f, an arrow object orientation decidingprogram 150 g, an arrow object flight calculating program 150 h, etc.

The game main processing program 150 a is a program for processing amain routine of the virtual game of this embodiment. The imagegenerating program 150 b is a program for generating a game image todisplay a game screen 130 on the monitor 26 by utilizing image data 152a (see FIG. 26) described later. The image displaying program 150 c is aprogram for displaying the game image generated according to the imagegenerating program 150 b on the monitor 26 as a game screen 130.

The angular velocity detecting program 150 d is a program for detectingangular velocity data as to angular velocities detected by the gyrosensor 104. As described above, the angular velocity data is included inthe input data from the controller 34, and therefore, the CPU 60 detectsthe angular velocity data included in the input data from the controller34 according to the angular velocity detecting program 150 d.

The acceleration detecting program 150 e is a program for detectingacceleration data as to accelerations detected by the accelerationsensors 84 and 86 (FIG. 11). As described above, the acceleration datais included in the input data from the controller 34, and therefore, theCPU 60 detects one or two acceleration data included in the input datafrom the controller 34 according to the acceleration detecting program150 e.

The posing processing program 150 f is a program for decidingorientations of the bow object and the arrow object 144 within the gamespace, and accordingly deciding a moving direction of the moving object,that is, the arrow object 144 after the shot. This posing processing isexecuted from when the arrow object is fixed to the bow object to whenthe arrow object is shot. The detail is shown in FIG. 28.

The arrow object flight calculating program 150 h is a program forcalculating a flying trace of the arrow object 144 after it is releasedfrom the bow object 142 according to a principle of physics (parabola).

Although illustration is omitted, the game program also includes a soundoutput program, a backup program, etc. The sound output program is aprogram for outputting music necessary for the game, such as music(BGM), a voice or an onomatopoeic sound of an object, a sound effect,and the like by utilizing sound (music) data. The backup program is aprogram for saving (storing) game data (proceeding data, result data) inthe memory card.

Furthermore, as shown in FIG. 26, the data memory area 152 storesvarious data, such as image data 152 a, angular velocity data 152 b,acceleration data 152 c, moving object data 152 d, etc. Although notshown, the data memory area 152 is provided with a timer, a register,and a necessary flag area, in addition, as required.

The image data 152 a is image data for generating a game image, andincludes polygon data, texture data, etc. Specifically, in thisembodiment, this includes the fixed object (target object) 132, the bowobject 134, the player character 136, the arrow object 142, and moreoveranimation image data which are to be displayed on the game screen 130described later. The angular velocity data 152 b is angular velocitydata detected according to the angular velocity detecting program 150 d.Here, in this embodiment, three or four angular velocity data aredetected per frame. The acceleration data 152 c is acceleration data ofthe remote controller 34 and the Nunchaku 36 detected according to theacceleration detecting program 150 e. The data on the angular velocitiesand accelerations are calculated per frame in order to calculate anattitude, but plurality of frame of data (20 pieces, for example) may bestored in order to make a correction, etc.

The moving object data 152 d is data as to the moving object, that is,the arrow object 142, and includes simulation (flying trace) positiondata 154, current position data 156 and physical quantity data 158. Thesimulation position data 154 is three-dimensional coordinate data of thearrow object 142 for every frame. Furthermore, the current position data156 is three-dimensional coordinate data of the arrow object 142 as to acurrent frame. The physical quantity data 158 is data as to physicalquantities, such as gravity, air resistance, lift by a rotation and liftby a plane effect which are exerted on the moving object 142 at thecurrent frame.

Attitude data 152 e is data for storing the attitude of the controller34 calculated in the posing processing program 150 f, and theorientations, etc. of the bow and arrow calculated on the basis thereof.

Although illustration is omitted, the data memory area 152 also storesother data, such as sound data, score data, and is provided with anothertimer (counter) and another flag which are required for the game.

The processing of this embodiment executed by the CPU 60 shown in FIG.10 is explained with reference to FIG. 27 and FIG. 28. As shown in FIG.27, when that the A button 46 d or the B button 46 h of the remotecontroller or the first controller 34 is turned on by the game player isdetected in a step S1, the CPU 60 starts the game processing forshooting a bow. The operation data is transmitted from the communicationunit 88 (FIG. 11) of the first controller 34 to the game apparatus 12 asdescribed before, and therefore, the CPU 60 can determine whether the Abutton 46 d or the B button 46 h is turned on with reference to theoperation data temporarily stored in the data memory area 152 at thattime.

If “YES” is determined in the step S1, the CPU 60 records an initialattitude at that time of the remote controller 34, that is, the gyrosensor unit 100 in the data memory area 152 in a next step S3. Here, theattitude is represented by a 3×3 rotating matrix G, and stored in a formof a matrix indicating that the remote controller 34 is rotated from thestate as a reference. Accordingly, the attitude G is for representinghow long the remote controller 34, that is, the gyro sensor unit 100 isrotated from a state that the remote controller 34 is opposed to themonitor 26 and placed horizontally, that is, from the straight state.The straight state is a value previously calculated, and this isevaluated by deciding an absolute value from the acceleration data whenno acceleration except for the gravity is applied, such as during stopof the remote controller 34. Here, the attitude in the yaw directioncannot be calculated from the gravity, and therefore, as to the yawdirection, an attitude at a predetermined timing is defined as astraight attitude. Accordingly, if an operation of stopping the remotecontroller 34 with the controller directed toward the monitor, and thelike is performed in an initial setting, etc. before the game, theabsolute attitude of the remote controller 34 continues to be calculatedthereafter. It should be noted that the attitude G is always updated inorder to continue to calculate the absolute attitude (or the attitudeassumed to be an absolute) of the remote controller 34, and therefore,it is also constantly updated except when the game in this embodiment isperformed, but in another embodiment, an initial setting may beperformed for each shooting of the bow or for each predetermined timing.Then, in the game processing of this embodiment, the attitude G of theremote controller 34 when the A button is turned on is stored as aninitial attitude G0.

In a succeeding step S5, the CPU 60 initializes an orientation of thebow object 142 (FIG. 22). That is, the attitude corresponding to theattitude G0 at a timing when the A button is turned on is set so as tobe corresponded to the state that the bow is straightly directed to thetarget object 132. The state is a state shown in FIG. 22.

After the state shown in FIG. 22 is made, that is, the orientation ofthe bow object 142 is initialized, posing processing shown in a nextstep S7 is executed. This posing process is specifically executedaccording to the procedure shown in FIG. 28.

In steps S31-S35 shown in FIG. 28, the CPU 60 rotates the attitude G ofthe remote controller 34 at the angular velocities detected by the gyrosensor 104, and updates the same. This is obtained by adding a rotationper unit of time indicated by the angular velocities to the currentattitude G. Then, a correction by utilizing the accelerations as in thestep S33 is further performed on the calculated attitude G. Morespecifically, a rotation M is calculated such that the attitude, thatis, the vertically below direction indicated by the rotating matrix G,that is, the direction of gravitational force v estimated from theattitude of the remote controller 34 is near to the direction of theacceleration vector a detected by the acceleration sensor 84 (FIG. 11)of the remote controller 34. The rotation amount of the rotation M isset as one example such that the closer the magnitude of theacceleration vector a is to the magnitude of the gravitationalacceleration, the closer the gravitational direction v is to theacceleration vector a. That is, since it is considered that the absoluteattitude can be calculated from the gravitational acceleration, bybringing the directly below direction v indicated by the attitude Gclose to the a assumed to be the gravitational acceleration, it ispossible to reduce the effect due to errors by the gyro. Thereupon, itis considered that the closer the magnitude of the acceleration is tothe size of the gravitational acceleration, the less the effect of theaccelerations except for the gravitational acceleration is, andtherefore, the degree of closeness is heightened. Then, in the next stepS35, the rotation M is added to the rotating matrix G to update the G.That is, the rotation is made such that the aforementioned correction isadded to the G.

Thus, in the step S33, the reason why the attitude of the remotecontroller 34 is corrected for each frame by the accelerations is forremoving accumulated errors peculiar to the gyro sensor as soon aspossible.

It should be noted that the processing from the step S31 to the step S35is also constantly performed except during the execution of the gameprocessing in FIG. 27 for the purpose of continuing to calculate theabsolute attitude of the remote controller 34. Here, if the errors ofthe gyro are not taken into account, the attitude G of the remotecontroller 34 may be decided only by the angular velocities by only thestep S31 without utilizing the correction step in the steps S33 and S35.

In next steps S37-S39, the CPU 60 updates the orientation of the bowobject 142 in response to the attitude of the remote controller 34.First, in the step S37, an orientation B of the bow object 142 iscalculated according to the rotating matrix G updated in the step S35.That is, the attitude of the remote controller 34 detected by the gyrosensor is reflected on the orientation of the bow object 142 on the gamescreen 130. More specifically, a coordinate transformation fortransforming the rotating matrix (attitude) G of the remote controller34 into the orientation of the bow object 142 is executed. Theorientation B of the bow object 142 is also represented by a form of arotating matrix with 3×3, for example. Specifically, since the operationof the bow is assumed to be made with the remote controller 34 beingupright as shown in FIG. 29, the transformation is added such that thebow object is made straight in a state that the remote controller ismade upright toward the player at a 90-degree angle. The orientation ofthe arrow object 144 is decided in correspondence to the orientation ofthe bow object 142.

In the succeeding step S39, by adding a reverse rotation by the attitudeG0 such that the bow object 142, that is, the arrow object 144 isreversely rotated by the basic attitude G0 when the A button 46 d or theB button 46 h is pushed by the game player, the CPU 60 calculates theorientation B. That is, since the user does not hold the remotecontroller 34 strictly upright at a timing when the button is turned on,by adding a reverse rotation by the attitude G0 such that the bow objectis made straight at a timing when the button is turned on, theorientation B transformed in the step S37 is transformed to the attitudecorresponding to the rotation since the button is turned on.

Thereafter, in a step S41, the CPU 60 assumes or calculates a spheretaking the arm 136 a (FIG. 22) of the player character 136 as radius,and moves the bow and arrow objects 142 and 144 to a positioncorresponding to the orientation B on the surface of the sphere. Thatis, the position on the sphere is a position where the direction fromthe center of the sphere to the position corresponds to the direction ofthe arm holding the bow. Then, in a step S43, the bow and arrow objectsare drawn at the positions in the orientation corresponding to theorientation B. The state is shown in FIG. 23. Then, the process returnsto the main processing in FIG. 27.

Thus, in the game apparatus of this embodiment, since in correspondenceto the change of the attitude G of the remote controller 34, that is,the gyro sensor unit 100, the orientation B of the bow and arrow objectis changed, the game player can set or decide the moving direction ofthe arrow object 144 very easily and quickly by merely changing theattitude of the remote controller (gyro sensor) in a real space (it ispossible to decide the aim). Thus, it is possible to realize anintuitive operation as if the player holds a real bow and aims at atarget.

Additionally, in the above-described posing processing, the orientationof the bow object 142, that is, the arrow object 144 is set on the basisof the angular velocity data on the basis of the rotation about eachaxis. Then, in order to decide the attitude, a correction is made by theacceleration data. However, in a case that the bow object 142 is movedin the up and down direction, that is, the pitch angle is controlled,the acceleration data from the acceleration sensor may be used, and onlywhen the bow object 142 is moved in the right and left direction (rollangle) or twisted (yaw angle), the angular velocity data from the gyrosensor 104 may be used. This makes it possible to control only the pitchangle so as to correspond to the actual attitude irrespective of theinitial attitude G0. In this embodiment, since the initial orientationof the bow is brought into correspondence with the attitude when thebutton is turned on, especially, the yaw angle, it is possible to playthe game even if the player cannot be opposed to the monitor due toproblem, such as the standing position of the player and the place wherethe game is played, but if only the pitch angle is brought intocorrespondence with the absolute attitude by the accelerations, it ispossible to make a premise that the game is played in a manner that theperson actually shoots a bow.

Returning to FIG. 27, after execution of the posing processing in thestep S7, in a step S9, the CPU 60 determines whether or not the gameplayer turns the A button 46 d or the B button 46 h off by monitoringthe operation data at that time. If “YES”, it is estimated that theplayer expresses his or her own intention to restart the setting of themoving direction of the arrow object 144, and the determination in theprevious processing in the step S1 is repeated.

If “NO” in the step S9, this means that the shooting operation iscontinued, and in that case, the CPU 60 determines whether or not anoperation of drawing the arrow is performed in a succeeding step S11.More specifically, it is determined whether or not the Nunchaku 36 isdrawn in a direction away from the monitor 26, that is, a direction ofthe player with the C button 54 b and the Z button 54 c thereof pushed.As a method of determining whether or not the Nunchaku 36 is drawn, theattitude of the Nunchaku 36 with reference to the Y axis is evaluatedfrom the acceleration data. It is determined whether or not the innerproduct between “the unit vector in a −Z direction” of the attitude and“the difference between the acceleration in the current step (timing) ofthe Nunchaku 36 and the acceleration in the previous step” exceeds aconstant value. If the inner product exceeds the constant value, the CPU60 determines that the Nunchaku 36 is drawn in a −Z direction. Here, theacceleration data is stored during a predetermined period, and bymultiplying a predetermined damper coefficient (low-pass filter) by theaccelerations detected by the acceleration sensor 86 of the Nunchaku 36,the accelerations whose changes is mitigated and from which noise isreduced may be utilized for the determination. Here, the specificdetermining method in the step S11 is not restricted to the abovedescription.

In the step S11, that is, when the second controller 36 is drawn towardthe player or the near side at a speed higher than the constant, it isdetermined that the premise for the movement instruction is established.In the shooting game utilizing the bow and arrow as in this embodiment,by drawing the second controller, that is, the Nunchaku 36, an operationof drawing the bow can be performed, and this makes it possible to shootan arrow by performing an intuitive operation on the bow similar to anactual drawing operation with a bow.

In this manner, when it is determined that the Nunchaku 36 is drawn in apredetermined direction in the step S11, the CPU 60 displays a state inwhich the player character 136 draws the bow object 142 on the gamescreen 130 as shown in FIG. 23.

Then, in a step S13 also, similar to the preceding step S7, posingprocessing is executed. Accordingly, even after the arrow is drawn, itis possible to control the shooting direction.

After execution of the posing processing in the step S13, the CPU 60determines whether or not the A button 46 d or the B button 46 h isturned off by the game player in a step S15. If “YES”, it is estimatedthat the player expresses his or her own intention to restart thesetting of the moving direction of the arrow object 144, and thedetermination in the preceding step S1 is waited.

If “NO”, the CPU 60 determines whether or not both of the C button 54 band the Z button 54 c of the Nunchaku 36 are turned off in the next stepS15. In this embodiment, when the Nunchaku 36 is drawn with the C button54 b and the Z button 54 c thereof simultaneously pushed, it isdetermined that the player draws the bow, and thereafter, when both ofthe C button 54 b and the Z button 54 c of the Nunchaku 36 aresimultaneously turned off, the arrow object 144 is designed to be shot.Accordingly, when “NO” is determined in the step S17, the steps S13 andS15 are repeatedly executed. Since the bow is shot by releasing the Cbutton 54 b and the Z button 54 c in a state that the Nunchaku 36 isdrawn, the way of shooting becomes an intuitive one as in the way ofactually shooting a bow and an arrow.

If “YES” is determined in the step S17, the CPU 60 makes the arrowobject 144 shoot from the bow object 142. At this time, assuming thatthe arrow object 144 is shot to the position and orientation (where thearrow is directed) of the arrow object 144 decided in the posingprocessing in the step S13 at a predetermined initial velocity, a flyingtrace of the arrow object is calculated according to the flying tracecalculation program in view of the physical quantities stored in thedata memory area 152.

Then, in a step S21, the CPU 60 draws a flight animation of the arrowobject 144 as in the game screen shown in FIG. 24.

Last, whether or not the arrow object 144 thus flied hits the targetobject 132, which position the arrow object 144 hits are calculatedaccording to a well-known collision determining calculation, and aresult judge in a step S23 is executed by summing up scores, and so on.Of course, if the arrow object 144 hits the center, a high score isevaluated, and as the hit is departed from the center, the score is low.

Additionally, in the above-described embodiment, when the Nunchaku 36 isdrawn toward the near side with the C button 54 b and the Z button 54 cof the Nunchaku 36 simultaneously pushed, the bow is adapted to bedrawn, and when the C button 54 b and the Z button 54 c aresimultaneously released, the arrow is adapted to be shot. That is, as amovement instruction inputting means, a forward and backward motion ofthe second controller, that is, the Nunchaku 36 and a button operationare employed. However, a method of the movement instruction may bereplaced with a method of drawing a bow by an inclining operation of thejoystick 54 a of the Nunchaku 36, and shooting an arrow by releasing it.In that case, when the absolute value (distance from the origin point)of the two-axis of the joystick 54 a exceeds a threshold value, the bowis drawn (“YES” is determined in the step S11), and if the differencebetween the absolute values at the previous frame and the current frameis severely reduced from a constant value, or if the absolute value isbelow the threshold value, the arrow may be released (“YES” isdetermined in the step S17). In this embodiment, the movementinstruction inputting means eventually input a movement instruction inresponse to the shift operation from the backward inclination to theforward inclination of the joystick 54 a. In this example also, theelement of drawing and then releasing an object is included, andtherefore, this may be an intuitive operation of shooting a bow and anarrow. Furthermore, in other cases, a movement instructing input by asimple button operation may be applied.

In addition, the movement instruction inputting means may be replacedwith a specific operation button, such as the A button 46 d of the firstcontroller 34. In that case, when the A button 46 d is turned on, amovement instruction may be input.

In the above-described embodiment, the gyro unit 100 (gyro sensor 104)is connected to the controller 34, but the gyro sensor 104 may beincluded in the controller 34.

Although the present embodiments have been described and illustrated indetail, it is clearly understood that the same is by way of illustrationand example only and is not to be taken by way of limitation, the spiritand scope of the present embodiments being limited only by the terms ofthe appended claims.

What is claimed is:
 1. A game apparatus which performs game processingaccording to data from a first controller and a second controller, thefirst controller including a first inertia sensor and an operatingportion, the game apparatus comprising one computer configured toperform at least: first determining for determining a movement of saidfirst controller in a predetermined direction away from a referencepoint on the basis of data from said first inertia sensor, seconddetermining for determining an operation of said operation portion,movement starting for, when said second determining determines theoperation of said operation portion after said first determiningdetermines the movement of said first controller in the predetermineddirection, starting to move a first object within a game space in apredetermined direction, and planned moving direction setting forchanging the moving direction of said first object in accordance withdata from said second controller, wherein the first controller moves ina predetermined direction away from the second controller.
 2. The gameapparatus according to claim 1, wherein said second controller includesa gyro sensor, and outputs angular velocity data on the basis of anoutput from said gyro sensor, and said planned moving direction settingchanges the planned moving direction of said first object on the basisof said angular velocity data.
 3. The game apparatus according to claim1, wherein said second controller includes a second inertia sensor, andoutputs inertia data on the basis of an output from said second inertiasensor, and said planned moving direction setting changes the plannedmoving direction of said first object according to the attitude of thesecond controller on the basis said inertia data.
 4. The game apparatusaccording to claim 1, wherein said operating portion includes a firstkey, and outputs key data on the basis of an operation performed on saidfirst key, and said movement starting instructs said first object tomove at a timing when said key data satisfies a predetermined condition.5. The game apparatus according to claim 4, wherein when said firstcontroller moves to a position along a predetermined direction away froma reference point with said first key operated on the basis of said keydata, said movement starting instructs said first object to move at atiming when the operation performed on said first key ceases.
 6. Thegame apparatus according to claim 1, wherein said first controllerincludes a stick configured to perform a direction input, and outputsstick input data, and said movement starting instructs said first objectto move at a timing when the stick input data satisfies a predeterminedcondition.
 7. The game apparatus according to claim 3, wherein saidsecond controller further includes a second key, and further outputs keydata on the basis of an operation performed on said second key, and saidpredetermined direction is set on the basis of a change of the attitudeof the second controller from a reference, the reference being set onthe basis of the attitude of the second controller when said operationis performed on said second key.
 8. A non-transitory storage mediumconfigured to being read by a processor of a game apparatus whichperforms game processing according to data from a first controller and asecond controller, the first controller including a first inertia sensorand an operating portion, said storage medium storing a program, saidprogram causes said processor to at least perform: determining amovement of said first controller in a predetermined direction away froma reference point on the basis of data from said first inertia sensor,determining an operation of said operation portion, and when saidoperation of said operation portion is determined after the movement ofsaid first controller in the predetermined direction is determined,starting to move a first object within a game space in a predetermineddirection, and changing the moving direction of said first object inaccordance with data from said second controller, wherein the firstcontroller moves in a predetermined direction away from the secondcontroller.
 9. A control method of a game apparatus which performs gameprocessing according to data from a first controller and a secondcontroller, the first controller including a first inertia sensor and anoperating portion, including: determining a movement of said firstcontroller in a predetermined direction away from a reference point onthe basis of data from said first inertia sensor, determining anoperation of said operation portion, and when said operation of saidoperation portion is determined after the movement of said firstcontroller in the predetermined direction is determined, starting tomove, via one or more computer processing devices, a first object withina game space in a predetermined direction, and changing the movingdirection of said first object in accordance with data from said secondcontroller, wherein the first controller moves in a predetermineddirection away from the second controller.
 10. A game processing systemwhich performs game processing according to data from a first controllerand a second controller, the first controller including a first inertiasensor and an operating portion, the game processing system comprisingone or more computer processors, configured to: determine a movement ofsaid first controller in a pulling direction on the basis of data fromsaid first inertia sensor, determine an operation of said operationportion, when said operation of said operation portion is determinedafter said movement of said first controller in a pulling direction isdetermined, start to move a first object within a game space in apredetermined direction, and change the moving direction of said firstobject in accordance with data from said second controller, wherein thefirst controller moves in a predetermined direction away from the secondcontroller.